3
有什麼方法可以檢查Go程序是否在運行時啓用-race
編譯(例如,用於日誌記錄/信息目的)?如何檢查比賽檢測器是否在運行時啓用?
我檢查了documentation,以及明顯的位置(runtime/*
),但我找不到任何東西。
有什麼方法可以檢查Go程序是否在運行時啓用-race
編譯(例如,用於日誌記錄/信息目的)?如何檢查比賽檢測器是否在運行時啓用?
我檢查了documentation,以及明顯的位置(runtime/*
),但我找不到任何東西。
據我所知,沒有簡單的檢查,但當-race
被啓用時,race
build tag被設置,所以你可以利用這一點。
我做了一個新的目錄israce
,並把兩個文件有:
israce/race.go
:
// +build race
// Package israce reports if the Go race detector is enabled.
package israce
// Enabled reports if the race detector is enabled.
const Enabled = true
israce/norace.go
:
// +build !race
// Package israce reports if the Go race detector is enabled.
package israce
// Enabled reports if the race detector is enabled.
const Enabled = false
由於構建標籤僅在兩個文件中的一個將被編譯。
據我已經能夠找到這是最簡單的方法。