Peter, I modified your patch to put the variables inside the critical section. Let me know if the following is not OK
public Thread.State getState() {
boolean dead = false;
synchronized(lock) {
if(started && !isAlive() ) dead = true;
}
if (dead) return State.TERMINATED;
int state = (VMThreadManager.getState(this));
--
Weldon Washburn
Intel Enterprise Solutions Software Division
