u/skeetoin r/C_Programming • Recommends
On “pthreads and data races”
#racedetector#threadsanitizer#vectorclocks
88K subscribers • 110 videos on Hallway • Conference channel
Advanced. Deep dive for people who know the field.
10K views10 years ago2 recommendations
Systems programmingProgramming languagesGoConcurrency and parallelismPerformance and optimization
Kavya Joshi explains the compiler instrumentation and runtime algorithms, including vector clocks, used by the Go race detector and ThreadSanitizer.
Writing correct concurrent code is hard. Debugging incorrect concurrent code is even harder. The Go race detector, introduced in Go version 1.1, is one cool tool that makes both easy to do in Go programs. Race conditions are arguably the most elusive programming errors, so how does a tool that detects these across programs operate under the hood? In the case of the Go race detector, with compiler instrumentation of the program and a run-time library that watches for “racy” memory accesses. This talk will delve into the internals of the data race detector — both the instrumentation by the compiler and the happens-before algorithm implemented by the run-time module to detect data races. We will touch upon how the alternative to such a dynamic data race detector — a static data analyzer — differs in design, and the pros and cons of each approach.What people say. Recommended for its deep dive into ThreadSanitizer internals and vector clocks, which are highly relevant to concurrent programming in both Go and C.
u/skeetoin r/C_Programming • Recommends
On “pthreads and data races”
programming-talkscurated list on GitHubRecommends
Under “Go”
u/skeetoin r/C_Programming • Mentions
On “Why this threaded program stops?”