[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.