При сборке с -race компилятор и рантайм инструментируют доступ к памяти. Во время выполнения отслеживают happens-before и обнаруживают конфликтующие доступы. Выводят отчёт о гонке при обнаружении. Существенные накладные расходы по памяти и скорости - только для тестов и отладки.
go test -race
go run -race ./cmd