]> Cypherpunks repositories - gostls13.git/commit
runtime: delay before osRelaxing
authorAustin Clements <austin@google.com>
Fri, 7 Jul 2017 16:03:22 +0000 (12:03 -0400)
committerAustin Clements <austin@google.com>
Fri, 7 Jul 2017 21:02:40 +0000 (21:02 +0000)
commit7a8f39fa14d519f6efc34b2a783098bd107d17e0
treeeb2c6d617f66f5d8cefd1e19acd2c7143f803f69
parent5d16f9751a1b947308d6ac4ab51c85c28e8c067d
runtime: delay before osRelaxing

Currently, sysmon relaxes the Windows timer resolution as soon as the
Go process becomes idle. However, if it's going idle because of a
short sleep (< 15.6 ms), this can turn that short sleep into a long
sleep (15.6 ms).

To address this, wait for 60 ms of idleness before relaxing the timer
resolution. It would be better to check the time until the next wakeup
and relax immediately if it makes sense, but there's currently no
interaction between sysmon and the timer subsystem, so adding this
simple delay is a much simpler and safer change for late in the
release cycle.

Fixes #20937.

Change-Id: I817db24c3bdfa06dba04b7bc197cfd554363c379
Reviewed-on: https://go-review.googlesource.com/47832
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/runtime/os_windows.go
src/runtime/proc.go
src/runtime/relax_stub.go