JDK-8238761 introduced this funky code:
class EnterInterpOnlyModeClosure : public HandshakeClosure {
private:
bool _completed;
public:
EnterInterpOnlyModeClosure() : HandshakeClosure("EnterInterpOnlyMode"), _completed(false) { }
void do_thread(Thread* th) {
...
_completed = true;
}
bool completed() {
return _completed = true;
}
};
It seems the flag is there to communicate that target thread indeed executed the handshake. But `completed()` sets the bool unconditionally and always returns true. And it is used in one and only place here:
guarantee(hs.completed(), "Handshake failed: Target thread is not alive?");
...which means that guarantee always passes.