At 09:14 AM 19/11/2003 -0500, Doug Lea wrote:
>* Whether an already-interrupted thread calling wait() will detectably
>   release and re-acquire the lock.  Because there are no ordering
>   guarantees for acquisition, no one can reliably detect whether you
>   release and immediately re-acquire.  Which means that
>   implementations can pre-check status and return immediately if so
>   desired.
If the specification allows the release and re-acquisition of the lock, 
this is certainly true. No test could demonstrate that the lock is not in 
fact released.
On the other hand, if the specification prohibits the release and 
re-acquisition, then a single detection of a release would serve as a 
demonstration that the implementation is incorrect.
What I find unsatisfactory is that the specification seems to be entirely 
silent on this issue, which creates the danger that people will, perhaps 
unconsciously, form improper inferences based on other aspects of the 
specification.
I have no view on whether release and re-acquisition should be permitted 
(as distinct from mandated), but I think the specification should make it 
clear, one way or the other.
Sylvia.
-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:54 EDT