“…In the context of testing multi-threaded programs, partial orders play a crucial role in dynamic race detection techniques, and have been thoroughly exploited to explore tradeoffs between soundness, completeness, and running time of the underlying analysis. Prominent examples include the widespread use of HB [19,24,30,49,60], schedulably-happens-before (SHB) [37], causally-precedes (CP) [63], weak-causally-precedes (WCP) [31], doesn't-commute (DC) [53], and strong/weak-dependently-precedes (SDP/WDP) [28], M2 [48] and SyncP [41]. Beyond race detection, partial orders are often employed to detect and reproduce other concurrency bugs such as atomicity violations [9,26,42], deadlocks [57,65], and other concurrency vulnerabilities [70].…”