Ready, set, Go! Data-race detection and the Go language
Daniel Schnetzer Fava, Martin Steffen

TL;DR
This paper introduces a data-race detection method for the Go language, focusing on channel communication as the only synchronization primitive and establishing a semantics based on the happens-before relation.
Contribution
It presents a novel data-race detector tailored for Go, utilizing vector clocks linked to channel-based synchronization and formal semantics.
Findings
Effective detection of data races in Go programs
Semantics based on happens-before relation enhances accuracy
Applicable to concurrent programs using channels
Abstract
Data races are often discussed in the context of lock acquisition and release, with race-detection algorithms routinely relying on vector clocks as a means of capturing the relative ordering of events from different threads. In this paper, we present a data-race detector for a language with channel communication as its sole synchronization primitive, and provide a semantics directly tied to the happens-before relation, thus forging the notion of vector clocks.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed systems and fault tolerance · Logic, programming, and type systems
