mirror of
https://github.com/golang/go
synced 2024-11-19 13:54:56 -07:00
093adeef40
Currently, sysmon waits 60 ms during idle before relaxing. This is primarily to avoid reducing the precision of short-duration timers. Of course, if there are no short-duration timers, this wastes 60 ms running the timer at high resolution. Improve this by instead inspecting the time until the next timer fires and relaxing the timer resolution immediately if the next timer won't fire for a while. Updates #20937. Change-Id: If4ad0a565b65a9b3e8c4cdc2eff1486968c79f24 Reviewed-on: https://go-review.googlesource.com/47833 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
18 lines
597 B
Go
18 lines
597 B
Go
// Copyright 2017 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// +build !windows
|
|
|
|
package runtime
|
|
|
|
// osRelaxMinNS is the number of nanoseconds of idleness to tolerate
|
|
// without performing an osRelax. Since osRelax may reduce the
|
|
// precision of timers, this should be enough larger than the relaxed
|
|
// timer precision to keep the timer error acceptable.
|
|
const osRelaxMinNS = 0
|
|
|
|
// osRelax is called by the scheduler when transitioning to and from
|
|
// all Ps being idle.
|
|
func osRelax(relax bool) {}
|