Thread group disposal question

Artem Ananiev Artem.Ananiev at Sun.COM
Thu Aug 21 06:26:58 PDT 2008


Hi, hotspot team,

(I'm not sure if hotspot-runtime-dev is a right alias for the questions 
like this, but I haven't found anything better)

my question is about the right way to destroy a Thread or ThreadGroup. 
In a few words, some application periodically creates and destroys 
instances of sun.awt.AppContext (which roughly corresponds to a 
ThreadGroup instance). After a small number of iterations application 
just hangs - the stack trace is attached.

The log shows a number of threads waiting for Unsafe.park() calls. I 
suspect this happens because AppContext class stops all the threads in 
its ThreadGroup with ThreadGroup.stop() and then destroys the group 
itself with ThreadGroup.destroy(). If any details are required, this 
code can be easily found in JDK source tree:

jdk/src/share/classes/sun/awt/AppContext.java

The question is whether the hang can be caused by using these unsafe 
methods, and whether I can workaround it in any way.

Thanks,

Artem
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: stacktrace.txt
Url: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20080821/40bc8f9a/attachment.txt 


More information about the hotspot-runtime-dev mailing list