[concurrency-interest] DirectByteBuffers and reachabilityFence
peter.levart at gmail.com
Wed Dec 9 04:03:04 EST 2015
On 12/09/2015 04:25 AM, Justin Sampson wrote:
> Andrew Haley wrote:
>> It's not just HotSpot, though: some VMs are even more aggressive,
>> and we have seen finalizers executed even before constructors have
>> completed. And that is allowed by the specification.
> How so? I mean, I understand that an object may become unreachable
> before the completion of its constructor due to inlining, but the
> finalizer is not allowed to run at that point:
> "The completion of an object's constructor happens-before the
> execution of its finalize method (in the formal sense of
A little later down in "12.6.1. Implementing Finalization" JLS also writes:
"An object o is not finalizable until its constructor has invoked the
constructor for Object on o and that invocation has completed
successfully (that is, without throwing an exception)."
So we have two seemingly contradictive definitions using: object's
constructor vs. Object's constructor
I think the definition that uses "object's constructor" is not precise.
A general object may have many costructors which are invoked in chain.
While java.lang.Object only has a single constructor. So I would trust
the later definition. Besides, this is how it is implemented in Hotspot/JDK.
> Concurrency-interest mailing list
> Concurrency-interest at cs.oswego.edu
More information about the Concurrency-interest