On Wed, 14 Oct 2020 15:16:54 GMT, Aleksey Shipilev <[email protected]> wrote:
> 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.
>
> Attention @robehn :)
It looks good.
Thank you for catching and fixing it!
Serguei
-------------
Marked as reviewed by sspitsyn (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/662