mirror of
https://github.com/wolfpld/tracy.git
synced 2026-10-01 14:35:26 +00:00
The scan consumes the final Waiting/SharedHolding flags of each lock map: a thread blocked in a lock acquisition emits no Obtain and no other event, so an unclosed wait at the last known state is a permanent wait per the event contract. A failed try_lock never emits a wait, so it cannot fabricate an edge. Locks recorded by clients with inverted release ordering are skipped entirely, as their holder attribution is ambiguous. A thread that holds a shared lock and waits for exclusive cannot progress while its own shared hold persists; this is reported as a size-1 cycle.
20 KiB
20 KiB