From: Godmar Back (gback@cs.utah.edu)
Date: Thu Dec 03 1998 - 17:14:18 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.)
> ^^^^^^^^^^^^^^^
>
> I knew that damn test was going to be good for something :-)
It does stress concurrency in class loading.
>
> > 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?
>
> Didn't we have this discussion already? I think the former.
>
We did have the discussion, but I don't think we thought through all
the issues. At least I don't understand them fully.
Here's a few things:
+ we must not hold any master lock while calling into a static initializer
or calling getClass->loadClass->loadClassVM, because these are upcalls.
(It might be fair and potentially necessary to hold a centry lock for
calls to loadClassVM).
+ we must guard against a circularity where A -> B -> A (-> inherits from)
and one thread starts processing A while another processes B.
- Godmar
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:05 EDT