[kaffe] verifier and threads
Patrick Tullmann
tullmann@cs.utah.edu
Mon Jan 20 11:44:01 2003
Helmer wrote:
> AFAIK, jthread_disable_stop() (jthread_enable_stop()) won't disable
> (enable) execution of other code, they just prevent the current
> thread from being stopped by a call to jthread_stop () (i.e. to
> prevent the thread from being stopped while it is the owner of some
> lock).
This is correct.
> If you wanted to disable (enable) execution of all other threads but
> the current one, you'd have to call jthread_suspendall()
> (jthread_unsuspendall()).
Also correct.
> I wouldn't do that in verify.c though, because calls to verify2 and
> verify3 should already be protected by the lock of the class that's
> being verified (it's acquired in processClass (), so the thread
> executing the verify2 and verify3 methods owns it).
I agree with this, too. I don't think there is any reason why the
verifier can't be multithreaded or, at the very least, preemptible.
> > my other bug is also weird. in Verify3, if you:
> > postExceptionMessage(einfo, JAVA_LANG(VerifyError), MSG);
> > when the error's thrown it yields a ClassNotFoundException and not a
> > VerifyError (though MSG is retained). however, ClassFormatError is found
> > easily. i can't seem to figure out why this is.
You can try '-vmdebug ELOOKUP' to get a sense of what's going on as
the exceptions are looked up.
-Pat
----- ----- ---- --- --- -- - - - - -
Pat Tullmann tullmann@cs.utah.edu
The early bird gets the worm, so sleep in.