On Sun, 8 Dec 2002 23:06, Leo Sutic wrote:
> if the deadlock happens inside the ClassLoader, you must synchronize on
> *all* objects that may access that CL instance. For example, consider this:
yep.
> The same problem exist here - the deadlock is in the classloader, meaning
> that we must have a mutex for *all* access paths to the CL instance. I'm
> not convinced that your patch does that. Could you provide some argument
> for it?
It does not solve it - just makes it less likely to happen. As most JVMs
resolve .class files on load nowadays - especially with things like hotspot.
Thus the main access to classloader occurs on initial class load.The
ClassLoader mechanism is relatively thread-safe except when one thread becomes
re-enters classloader (ie ClassLoader.loadClass() --> static initializer
block --> ClassLoader.loadClass()) and another thread is in classloader.
I vaguely recall seeing the detailed explanation somewhere but can't for the
life of me remember where.
Anyways the patch does not solve it but it will hopefully make it less likely
occurence.
--
Cheers,
Peter Donald
----------------------------------------
"Liberty means responsibility. That is
why most men dread it." - Locke
----------------------------------------
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>