Chapter 4. Go Race Detector
Go Toolset includes the Go race detector. The race detector is a feature of the Go standard library. The race detector must be enabled at compile time and is used at runtime.
4.1. Installing the Race Detector
In Go Toolset, the race detector is provided by the go-toolset-1.10-golang-race package. To install the race detector:
# yum install go-toolset-1.10-golang-race
A variant of the Go standard library with the runtime race detection enabled is installed.
4.2. Using the Race Detector
To use the runtime race detector for a Go project, add the
-race option to the go tool commands used when manipulating the project.
For a minimal approach to using the race detector, build the project with the
$ scl enable go-toolset-1.10 'go build -race -o output_file go_main_package'
When you run the resulting executable, the race detector will print warnings to the standard output when a race is detected.
The race detector has a significant runtime resource overhead.
4.3. Additional Resources
A detailed description of the Go race detector and its features is beyond the scope of this book. For more information, see the resources listed below.
- Data Race Detector — Official documentation of the Go race detector.
- Chapter 1, Go Toolset — An overview of Go Toolset and more information on how to install it on your system.