  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.
