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

Reply via email to