From: Godmar Back (gback@cs.utah.edu)
Date: Thu Dec 03 1998 - 03:26:03 EST
Okay, be careful with my changes for the moment.
I'm still having deadlocks (which show only up under Linux for
ThreadLocalTest, which is why I didn't see them before.)
Thanks to the debugging addition, at least I was able to find
them quickly, but I still don't know how to fix them.
Basically, classLock and centry are in a race:
+ if processClass calls getClass(superclass), it has the classLock and
wants to lock centry (in getClass).
+ if getClass calls loadClass, which then calls processClass, it has the
centry and wants the classLock.
In any event, we MUSTN'T hold the classLock when we call getClass because
it may call up to a classloader.
I'll resume work on it tomorrow.
I might just get rid of classLock altogether.
What was it supposed to protect, anyway? Was it simply a means of
serialization and attempted deadlock prevention (in which case its wrong
and useless) or did it actually protect anything?
- Godmar
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:05 EDT