[kaffe] State of the Verifier
stack at cs.utah.edu
Mon Jul 28 12:48:02 PDT 2003
> Hi Tim,
> > 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.
> 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 ;)
More information about the kaffe