3ee782b11d
Use a uniform function (named “quiesce”) to wait for possible signals in a way that gives the kernel many opportunities to deliver them. Simplify channel usage and concurrency in stress tests. Use (*testing.T).Deadline instead of parsing the deadline in TestMain. In TestStop, sleep forever in a loop if we expect the test to die from a signal. That should reduce the flakiness of TestNohup, since TestStop will no longer spuriously pass when run as a subprocess of TestNohup. Since independent signals should not interfere, run the different signals in TestStop in parallel when testing in short mode. Since TestNohup runs TestStop as a subprocess, and TestStop needs to wait many times for signals to quiesce, run its test subprocesses concurrently and in short mode — reducing the latency of that test by more than a factor of 2. The above two changes reduce the running time of TestNohup on my workstation to ~345ms, making it possible to run much larger counts of the test in the same amount of wall time. If the test remains flaky after this CL, we can spend all or part of that latency improvement on a longer settle time. Updates #33174 Change-Id: I09206f213d8c1888b50bf974f965221a5d482419 Reviewed-on: https://go-review.googlesource.com/c/go/+/226138 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> |
||
---|---|---|
.github | ||
api | ||
doc | ||
lib/time | ||
misc | ||
src | ||
test | ||
.gitattributes | ||
.gitignore | ||
AUTHORS | ||
CONTRIBUTING.md | ||
CONTRIBUTORS | ||
favicon.ico | ||
LICENSE | ||
PATENTS | ||
README.md | ||
robots.txt | ||
SECURITY.md |
The Go Programming Language
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Download and Install
Binary Distributions
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install or load doc/install.html in your web browser for installation instructions.
Install From Source
If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source or load doc/install-source.html in your web browser for source installation instructions.
Contributing
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.