HI Chris, Alan,

Alan Bateman said the following on 02/15/11 03:48:
Chris Hegarty wrote:
Since your changes for CR 6566340 "Restore use of stillborn flag to signify a thread that was stopped before it started", are now promoted in hs21.0-b01, I would like to proceed with this clean up in the libraries. Basically reverse out the changes that were made by CR 4519200, in JDK6. Stop before start will now be correctly handled solely by the VM.

Also, some minor changes to an existing StopBeforeStart regression test.

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

Not your doing, but it looks like stop(null) could resume a suspended thread before throwing NPE. Do I read this correctly? Just wondering if that should be ex-examined while you are in the stop method.

It doesn't pay to look too closely at this code :)

Yes the old and current code might resume a thread and then not actually stop it due to the throwable being null. We should probably put in an explicit null check.

That said the resume() is bogus anyway:

1. There's nothing in the spec that says that a thread that was suspended which is then stopped should immediately resume so that it can throw the exception. Seems to me it should throw only after being explicitly resumed.

2. As there's no synchronization between stop/suspend/resume the thread could be suspended as soon as you've resumed it.


That aside the code changes look code.

Thanks. Let's hope we've finally laid this one to rest!

David

Reply via email to