[kaffe] State of the Verifier

Timothy Stack stack at cs.utah.edu
Mon Jul 28 12:48:02 PDT 2003


> Hi Tim,

hi,

> > 
> > I don't understand why this is a problem.
> 
> Here's why this is a problem during verification.  When verify3() is
> called on a class, the class is CSTATE_PREPARED.  Suppose that I am
> verifying class A and I need to load class B to complete verifying class
> A.  Now, loadClass makes sure a class is processed to CSTATE_LINKED, which
> is just after verify3() is called.  But suppose class B requires class A
> to be loaded to complete verification.  Then loadClass is called, class A
> is found in memory but it has not yet been processed to CSTATE_LINKED, so
> the thread tries to verify3() it again.  This is legal because it's the
> same calling thread, so it already has the lock for class A.  etc. etc.

Oh right...

> What I can do instead is to create a new CSTATE_BEING_LINKED or something
> instead of doing the loadClassToState() method.  That probably
> works...that sound alright?

Yes...  Although, to be consistent with whats there (i.e. 
CSTATE_DOING_PREPARE, DOING_SUPER, etc...), call it CSTATE_DOING_LINK.

> I'm still getting my feet wet in the kaffe core internals, so thanks for
> helping me out :)

thanks for taking the time to talk it out and not rush ahead ;)

> Cheers,
> Rob

tim




More information about the kaffe mailing list