Josh Bleecher Snyder
ce52a5631b
Revert "eliminate prefetch"
...
this breaks graceful shutdown. details TBD.
This reverts commit a474e79bf8967a573f05d07cee0b1abdbee4608a.
2021-07-13 15:15:16 -07:00
Josh Bleecher Snyder
e33d6a049b
eliminate prefetch
...
looks like a premature optimization
2021-07-13 15:15:16 -07:00
Josh Bleecher Snyder
61cde40000
use syncs, start reworking file
2021-07-13 15:15:16 -07:00
David Crawshaw
676e32ad72
syncs: add AtomicUint32
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com >
2021-06-23 08:51:37 -07:00
David Crawshaw
297b3d6fa4
staticcheck.conf: turn off noisy lint errors
...
Signed-off-by: David Crawshaw <crawshaw@tailscale.com >
2021-06-18 15:48:20 -07:00
Josh Bleecher Snyder
d3ba860ffd
syncs: stop running TestWatchMultipleValues on CI
...
It's flaky, and not just on Windows.
Signed-off-by: Josh Bleecher Snyder <josharian@gmail.com >
2021-05-04 10:21:21 -07:00
Josh Bleecher Snyder
0807e3e2f7
syncs: disable TestWatchMultipleValues on Windows CI builds
...
The Windows CI machine experiences significant random execution delays.
For example, in this code from watchdog.go:
done := make(chan bool)
go func() {
start := time.Now()
mu.Lock()
There was a 500ms delay from initializing done to locking mu.
This test checks that we receive a sufficient number of events quickly enough.
In the face of random 500ms delays, unsurprisingly, the test fails.
There's not much principled we can do about it.
We could build a system of retries or attempt to detect these random delays,
but that game isn't worth the candle.
Skip the test.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2021-03-27 13:25:33 -07:00
Brad Fitzpatrick
77ec80538a
syncs: add Semaphore
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com >
2021-03-23 12:39:28 -07:00
Dmytro Tananayskiy
c431382720
Fix receiver in order to be consistent: syncs.WaitGroupChan
...
Signed-off-by: Dmytro Tananayskiy <dmitriyminer@gmail.com >
2020-11-24 17:20:34 -08:00
Josh Bleecher Snyder
9ab2b32569
syncs: add Watch, for monitoring mutex contention
...
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2020-09-11 11:36:07 -07:00
Josh Bleecher Snyder
bf24d54143
syncs: add AssertLocked
...
This allows us to check lock invariants.
It was proposed upstream and rejected in:
https://github.com/golang/go/issues/1366
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com >
2020-09-09 12:27:52 -07:00
Brad Fitzpatrick
d3134ad0c8
syncs: add AtomicBool
2020-05-29 12:41:30 -07:00
Brad Fitzpatrick
b4d02a251a
syncs: add new package for extra sync types
2020-03-12 11:13:33 -07:00