diff options
author | Jamie Liu <jamieliu@google.com> | 2021-02-24 11:55:02 -0800 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-02-24 11:56:56 -0800 |
commit | ba4dfa7172a00f8b104a75a4655fe3de1e4a94c9 (patch) | |
tree | 36b7f2f85e34cf12b89f91e9f48c5a0881fe2c98 /pkg/unet/unet.go | |
parent | 8f6274404a87aa6adb2c8f322b9ee7aae2589fba (diff) |
Move //pkg/gate.Gate to //pkg/sync.
- Use atomic add rather than CAS in every Gate method, which is slightly
faster in most cases.
- Implement Close wakeup using gopark/goready to avoid channel allocation.
New benchmarks:
name old time/op new time/op delta
GateEnterLeave-12 16.7ns ± 1% 10.3ns ± 1% -38.44% (p=0.000 n=9+8)
GateClose-12 50.2ns ± 8% 42.4ns ± 6% -15.44% (p=0.000 n=10+10)
GateEnterLeaveAsyncClose-12 972ns ± 2% 640ns ± 7% -34.15% (p=0.000 n=9+10)
PiperOrigin-RevId: 359336344
Diffstat (limited to 'pkg/unet/unet.go')
-rw-r--r-- | pkg/unet/unet.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pkg/unet/unet.go b/pkg/unet/unet.go index c976d7230..22dd40f21 100644 --- a/pkg/unet/unet.go +++ b/pkg/unet/unet.go @@ -23,7 +23,7 @@ import ( "sync/atomic" "syscall" - "gvisor.dev/gvisor/pkg/gate" + "gvisor.dev/gvisor/pkg/sync" ) // backlog is used for the listen request. @@ -67,7 +67,7 @@ func eventFD() (int, error) { // Socket is a connected unix domain socket. type Socket struct { // gate protects use of fd. - gate gate.Gate + gate sync.Gate // fd is the bound socket. // |