Re: Ah! still deadlock

Date view Thread view Subject view Author view

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


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:05 EDT