{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,8]],"date-time":"2026-10-08T11:35:02Z","timestamp":1791459302434,"version":"4.3.4"},"reference-count":39,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T00:00:00Z","timestamp":1540339200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CSR 1422798, CPS 1329991"],"award-info":[{"award-number":["CSR 1422798, CPS 1329991"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2018,10,24]]},"abstract":"<jats:p>\n            Dynamic race detection is the problem of determining if an observed program execution reveals the presence of a data race in a program. The classical approach to solving this problem is to detect if there is a pair of conflicting memory accesses that are unordered by Lamport\u2019s happens-before (HB) relation. HB based race detection is known to not report false positives, i.e., it is sound. However, the soundness guarantee of HB only promises that the first pair of unordered, conflicting events is a\n            <jats:italic>schedulable<\/jats:italic>\n            data race. That is, there can be pairs of HB-unordered conflicting data accesses that are not schedulable races because there is no reordering of the events of the execution, where the events in race can be executed immediately after each other. We introduce a new partial order, called schedulable happens-before (SHB) that exactly characterizes the pairs of schedulable data races \u2014 every pair of conflicting data accesses that are identified by SHB can be scheduled, and every HB-race that can be scheduled is identified by SHB. Thus, the SHB partial order is truly sound. We present a linear time, vector clock algorithm to detect schedulable races using SHB. Our experiments demonstrate the value of our algorithm for dynamic race detection \u2014 SHB incurs only little performance overhead and can scale to executions from real-world software applications without compromising soundness.\n          <\/jats:p>","DOI":"10.1145\/3276515","type":"journal-article","created":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T11:57:18Z","timestamp":1540382238000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":39,"title":["What happens-after the first race? enhancing the predictive power of happens-before based dynamic race detection"],"prefix":"10.1145","volume":"2","author":[{"given":"Umang","family":"Mathur","sequence":"first","affiliation":[{"name":"University of Illinois at Urbana-Champaign, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Dileep","family":"Kini","sequence":"additional","affiliation":[{"name":"Akuna Capital, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Mahesh","family":"Viswanathan","sequence":"additional","affiliation":[{"name":"University of Illinois at Urbana-Champaign, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2018,10,24]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535845"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2627752"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158119"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250762"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1165389.945468"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.5555\/1924943.1924954"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/838237.838485"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.84874"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542490"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594315"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984024"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2983990.2984025"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062374"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/359545.359563"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2931037.2931046"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542491"},{"key":"e_1_2_2_17_1","volume-title":"Accessed","author":"Mathur Umang","year":"2018","unstructured":"Umang Mathur . 2018 . RAPID: Dynamic Analysis for Concurrent Programs. https:\/\/github.com\/umangm\/rapid . Accessed : July 30, 2018. Umang Mathur. 2018. RAPID: Dynamic Analysis for Concurrent Programs. https:\/\/github.com\/umangm\/rapid . Accessed: July 30, 2018."},{"key":"e_1_2_2_18_1","volume-title":"What Happens-After the First Race? Enhancing the Predictive Power of Happens-Before Based Dynamic Race Detection. CoRR abs\/1808.00185","author":"Mathur Umang","year":"2018","unstructured":"Umang Mathur , Dileep Kini , and Mahesh Viswanathan . 2018. What Happens-After the First Race? Enhancing the Predictive Power of Happens-Before Based Dynamic Race Detection. CoRR abs\/1808.00185 ( 2018 ). http:\/\/arxiv.org\/abs\/1808.00185 Umang Mathur, Dileep Kini, and Mahesh Viswanathan. 2018. What Happens-After the First Race? Enhancing the Predictive Power of Happens-Before Based Dynamic Race Detection. CoRR abs\/1808.00185 (2018). http:\/\/arxiv.org\/abs\/1808.00185"},{"key":"e_1_2_2_19_1","unstructured":"Friedemann Mattern. 1988. Virtual Time and Global States of Distributed Systems. In Parallel and Distributed Algorithms. North-Holland 215\u2013226.  Friedemann Mattern. 1988. Virtual Time and Global States of Distributed Systems. In Parallel and Distributed Algorithms. North-Holland 215\u2013226."},{"key":"e_1_2_2_20_1","volume-title":"Petri Nets: Applications and Relationships to Other Models of Concurrency","author":"Mazurkiewicz Antoni","unstructured":"Antoni Mazurkiewicz . 1987. Trace theory . In Petri Nets: Applications and Relationships to Other Models of Concurrency , W. Brauer, W. Reisig, and G. Rozenberg (Eds.). Springer Berlin Heidelberg , Berlin, Heidelberg , 278\u2013324. Antoni Mazurkiewicz. 1987. Trace theory. In Petri Nets: Applications and Relationships to Other Models of Concurrency, W. Brauer, W. Reisig, and G. Rozenberg (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 278\u2013324."},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1229428.1229457"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855741.1855760"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1134018"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/781498.781528"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/781498.781529"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1889997.1890000"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2483760.2483765"},{"key":"e_1_2_2_28_1","unstructured":"Grigore Rosu. 2018. RV-Predict Runtime Verification. https:\/\/runtimeverification.com\/predict\/ . Accessed: 2018-04-01.  Grigore Rosu. 2018. RV-Predict Runtime Verification. https:\/\/runtimeverification.com\/predict\/ . Accessed: 2018-04-01."},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2688204.2688205"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.5555\/1986308.1986334"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/269005.266641"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375584"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1007\/11494881_14"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1791194.1791203"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103656.2103702"},{"key":"e_1_2_2_36_1","volume-title":"Proceedings of the third workshop on Java for high performance computing.","author":"Smith Lorna A","year":"2001","unstructured":"Lorna A Smith and J Mark Bull . 2001 . A multithreaded java grande benchmark suite . In Proceedings of the third workshop on Java for high performance computing. Lorna A Smith and J Mark Bull. 2001. A multithreaded java grande benchmark suite. In Proceedings of the third workshop on Java for high performance computing."},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1287624.1287654"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/360204.360206"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2950290.2950332"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276515","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276515","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276515","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T19:03:39Z","timestamp":1750273419000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276515"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,10,24]]},"references-count":39,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2018,10,24]]}},"alternative-id":["10.1145\/3276515"],"URL":"https:\/\/doi.org\/10.1145\/3276515","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,10,24]]},"assertion":[{"value":"2018-10-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}