------- Additional Comments From tromey at gcc dot gnu dot org 2005-05-21 23:56 ------- In the upstream PR, a real deadlock is mentioned. The backtrace shows the finalizer thread blocking. Probably what is happening is that one thread is spinning while looking for an empty slot in the string hash table, and then the GC tries to finalize one of these strings. The String finalizer tries to acquire the lock already held by the thread looking for an empty slot, resulting in deadlock.
This is just a theory, I would need at least backtraces of all the threads to be sure. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21703