diff options
| author | Taras Madan <tarasmadan@google.com> | 2022-03-31 14:48:05 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-31 14:48:05 +0200 |
| commit | 68fc921ad90a9ed3604448913e66d02ea8d11de6 (patch) | |
| tree | 836206fbeadbdfcb9fc9071f7681d079e8210e33 /syz-verifier/monitoring_api.go | |
| parent | c4c32d8c774cb19ca838765ca4ddf38ab8dc0ddb (diff) | |
syz-verifier: fix stats access, remove races
Removed atomic operations.
Added object level mutex.
Diffstat (limited to 'syz-verifier/monitoring_api.go')
| -rw-r--r-- | syz-verifier/monitoring_api.go | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/syz-verifier/monitoring_api.go b/syz-verifier/monitoring_api.go index 1c95f9d26..3b082c264 100644 --- a/syz-verifier/monitoring_api.go +++ b/syz-verifier/monitoring_api.go @@ -44,25 +44,26 @@ func (monitor *Monitor) initHTTPHandlers() { // statsJSON provides information for the "/api/stats.json" render. type statsJSON struct { StartTime time.Time - TotalCallMismatches int64 - TotalProgs int64 - ExecErrorProgs int64 - FlakyProgs int64 - MismatchingProgs int64 - AverExecSpeed int64 + TotalCallMismatches uint64 + TotalProgs uint64 + ExecErrorProgs uint64 + FlakyProgs uint64 + MismatchingProgs uint64 + AverExecSpeed uint64 } // handleStats renders the statsJSON object. func (monitor *Monitor) renderStats() interface{} { stats := monitor.externalStats + return &statsJSON{ - StartTime: stats.StartTime, - TotalCallMismatches: stats.TotalCallMismatches, - TotalProgs: stats.TotalProgs, - ExecErrorProgs: stats.ExecErrorProgs, - FlakyProgs: stats.FlakyProgs, - MismatchingProgs: stats.MismatchingProgs, - AverExecSpeed: 60 * stats.TotalProgs / int64(1+time.Since(stats.StartTime).Seconds()), + StartTime: stats.StartTime.Get(), + TotalCallMismatches: stats.TotalCallMismatches.Get(), + TotalProgs: stats.TotalProgs.Get(), + ExecErrorProgs: stats.ExecErrorProgs.Get(), + FlakyProgs: stats.FlakyProgs.Get(), + MismatchingProgs: stats.MismatchingProgs.Get(), + AverExecSpeed: 60 * stats.TotalProgs.Get() / uint64(1+time.Since(stats.StartTime.Get()).Seconds()), } } |
