diff options
author | gVisor bot <gvisor-bot@google.com> | 2020-09-15 22:17:56 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-09-15 22:17:56 +0000 |
commit | 86a49b5de9dda0c050584bbaa408be1b68b1fd55 (patch) | |
tree | 6c179ca0f16be32639c09f85bf4c135e9b8efcc5 /pkg/amutex | |
parent | 0c8d10699e1bf4f4f1e6f9fb7fdd4ec1a961daf3 (diff) | |
parent | 456c6c33e104e7421a5a815bba69d46b289ae724 (diff) |
Merge release-20200907.0-52-g456c6c33e (automated)
Diffstat (limited to 'pkg/amutex')
-rw-r--r-- | pkg/amutex/amutex.go | 30 |
1 files changed, 3 insertions, 27 deletions
diff --git a/pkg/amutex/amutex.go b/pkg/amutex/amutex.go index a078a31db..d7acc1d9f 100644 --- a/pkg/amutex/amutex.go +++ b/pkg/amutex/amutex.go @@ -19,41 +19,17 @@ package amutex import ( "sync/atomic" + "gvisor.dev/gvisor/pkg/context" "gvisor.dev/gvisor/pkg/syserror" ) // Sleeper must be implemented by users of the abortable mutex to allow for // cancellation of waits. -type Sleeper interface { - // SleepStart is called by the AbortableMutex.Lock() function when the - // mutex is contended and the goroutine is about to sleep. - // - // A channel can be returned that causes the sleep to be canceled if - // it's readable. If no cancellation is desired, nil can be returned. - SleepStart() <-chan struct{} - - // SleepFinish is called by AbortableMutex.Lock() once a contended mutex - // is acquired or the wait is aborted. - SleepFinish(success bool) - - // Interrupted returns true if the wait is aborted. - Interrupted() bool -} +type Sleeper = context.ChannelSleeper // NoopSleeper is a stateless no-op implementation of Sleeper for anonymous // embedding in other types that do not support cancelation. -type NoopSleeper struct{} - -// SleepStart implements Sleeper.SleepStart. -func (NoopSleeper) SleepStart() <-chan struct{} { - return nil -} - -// SleepFinish implements Sleeper.SleepFinish. -func (NoopSleeper) SleepFinish(success bool) {} - -// Interrupted implements Sleeper.Interrupted. -func (NoopSleeper) Interrupted() bool { return false } +type NoopSleeper = context.Context // Block blocks until either receiving from ch succeeds (in which case it // returns nil) or sleeper is interrupted (in which case it returns |