Code Review 6988618: JCK test setDaemon0101 hangs on specific machine

Chris Hegarty chris.hegarty at oracle.com
Thu Nov 4 11:44:05 UTC 2010


David, Alan,

There is a race, if the thread being created completes before the 
starting thread has a chance to complete its start method ( and 
decrement the groups nUnstartedThreads count ), then when the newly 
started threads exit method notifies the group that it is terminating 
the group will not be destroyed because it believes it still as an 
unstarted thread in it.

Basically we decrement the unstarted thread count in threadStarting.
Since the thread is added to the group the reason for the unstarted
thread count is no longer applicable, i.e. the thread is a real member
of the group. We rectify the unstarted thread count if start fails,
allowing a subsequent attempt to start the thread (this is consistent
with current behavior).

Webrev:
http://cr.openjdk.java.net/~chegar/6988618/webrev.00/webrev/

Thanks,
-Chris.



More information about the core-libs-dev mailing list