On Tue, 20 Jan 2026 20:59:57 GMT, David Holmes <[email protected]> wrote:
>> I've tracked that comment back to this very old changeset: >> >> >> $ git log 22929fb78f46^! >> commit 22929fb78f4606f726b652a25772980336398575 >> Author: Karen Kinnear <[email protected]> >> Date: Fri Oct 22 15:59:34 2010 -0400 >> >> 6988353: refactor contended sync subsystem >> >> Reduce complexity by factoring synchronizer.cpp >> >> Reviewed-by: dholmes, never, coleenp > > I think Dan is right that this has changed the behaviour by deciding > `was_notified` earlier in the process. Now this check: > > 1882 if (interrupted || HAS_PENDING_EXCEPTION) { > 1883 was_notified = false; > > will supercede the fact we could actually have been notified. And that is a > problem because if the current was notified but now throws > InterruptedException then we lose the notification. I think my suggestion to > set `was_notified` at 1883 was wrong - we need to undo that. > > The key point is that if we unlink ourselves then we were definitely not > notified; otherwise we must have been. Might be clearer to move `bool was_notified = true;` right before the branch at L1908 where we determine if there was a notification or not. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/27040#discussion_r2710950713
