synchronization in gcj

Godmar Back gback@cs.utah.edu
Fri Jan 15 09:32:00 GMT 1999


 Jerry,
>> If the exception handling is badly structured (in terms of mapping of
> bytecode ranges to handlers) then it is possible to miss execution of
> monitorexit before returning from the method. This bug is present in both
> bytecode produced by Sun's javac, and also IBM's jikes.

I didn't know about this. Can you give an example of or pointer to code
that javac or jikes mishandles?
The convention that monitor_exit be placed in exception handling code
is one that the compiler is supposed to guarantee, but the verifier won't
enforce it, will it?
About your argument that a robust runtimes should unlock all locks held
in a method --- I am not sure if that argument holds up. Isn't this like
saying that the run-time should silently fix errors made by the compiler?
And if the verifier does indeed *not* check the symmetry of exit and enter,
what's to prevent a programmer from creating bytecode like :
 lock() {
	 MONITOR_ENTER
 }
 unlock() {
	 MONITOR_EXIT
 }
If that bytecode passes the verifier, the run-time should run it, should
it not --- even in the face of exceptions.
	- Godmar


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /