On Tue, 4 Apr 2023 22:12:03 GMT, David Holmes <dhol...@openjdk.org> wrote:

>>> Given the owner could release the monitor the moment after we check I don't 
>>> see how false results are an issue here. The existing code should be safe 
>>> when not executed at a safepoint..
>> 
>> I checked again. It looks like the DeadLock test now passes even if I let 
>> the code in management.cpp go check stacks without safepoint. I believe the 
>> addition of the start_processing() to LockStack::contains() fixes the ZGC 
>> problem. But please, run the full tests again on Mach5. I don't see any 
>> failures here.
>
>> When it is anonymously locked it must be waiting. 
> 
> I guess I am unclear what "waiting" refers to here, and which "thread" we are 
> checking for what. If the monitor is anonymously locked then we know it is 
> contended - perhaps that is what this "waiting" means?

> The existing code should be safe when not executed at a safepoint.

Just to be clear I meant the code before your changes should be safe. Your code 
needs to establish it is safe - which takes us back to the issue of querying 
the lock-stack while it may be being concurrently pushed/popped.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/10907#discussion_r1157820627

Reply via email to