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