Request for reviews (XS): 6772683: Thread.isInterrupted() fails to return true on multiprocessor PC
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Wed May 20 14:17:53 PDT 2009
http://cr.openjdk.java.net/~kvn/6772683/webrev.01
Fixed 6772683: Thread.isInterrupted() fails to return true on multiprocessor PC
Problem:
The C2 intrinsic isInterrupted() misses a control edge setting for
the field thread::_interrupted load. The load use raw (not oop) thread
pointer for which we don't generate a NULL check which prevents in
an oop case the load to flow up.
In the bug case the field load flow up from the loop and the field check
follows it which is wrong.
Solution:
Set the control edge for the field _interrupted load.
Added the regression test.
Reviewed by:
Fix verified (y/n): y, bug's test
Other testing:
JPRT
More information about the hotspot-compiler-dev
mailing list