diff options
author | Ian Gudger <igudger@google.com> | 2018-09-17 13:35:00 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2018-09-17 13:35:54 -0700 |
commit | ab6fa44588233fa48d1ae0bf7d9b0d9e984a6af0 (patch) | |
tree | b084d11cc5cc42b68aef31a2244788471ed1af8f /pkg | |
parent | a452971630a4b43f671efffdacb5a4892cf25579 (diff) |
Allow kernel.(*Task).Block to accept an extract only channel
PiperOrigin-RevId: 213328293
Change-Id: I4164133e6f709ecdb89ffbb5f7df3324c273860a
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/sentry/fs/lock/lock.go | 2 | ||||
-rw-r--r-- | pkg/sentry/kernel/task_block.go | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/pkg/sentry/fs/lock/lock.go b/pkg/sentry/fs/lock/lock.go index e9b376eb6..439e645db 100644 --- a/pkg/sentry/fs/lock/lock.go +++ b/pkg/sentry/fs/lock/lock.go @@ -121,7 +121,7 @@ type Locks struct { // Blocker is the interface used for blocking locks. Passing a nil Blocker // will be treated as non-blocking. type Blocker interface { - Block(C chan struct{}) error + Block(C <-chan struct{}) error } const ( diff --git a/pkg/sentry/kernel/task_block.go b/pkg/sentry/kernel/task_block.go index 9fd24f134..6dc7b938e 100644 --- a/pkg/sentry/kernel/task_block.go +++ b/pkg/sentry/kernel/task_block.go @@ -95,7 +95,7 @@ func (t *Task) BlockWithDeadline(C chan struct{}, haveDeadline bool, deadline kt // Most clients should use BlockWithDeadline or BlockWithTimeout instead. // // Preconditions: The caller must be running on the task goroutine. -func (t *Task) BlockWithTimer(C chan struct{}, tchan <-chan struct{}) error { +func (t *Task) BlockWithTimer(C <-chan struct{}, tchan <-chan struct{}) error { return t.block(C, tchan) } @@ -104,13 +104,13 @@ func (t *Task) BlockWithTimer(C chan struct{}, tchan <-chan struct{}) error { // is interrupted. // // Preconditions: The caller must be running on the task goroutine. -func (t *Task) Block(C chan struct{}) error { +func (t *Task) Block(C <-chan struct{}) error { return t.block(C, nil) } // block blocks a task on one of many events. // N.B. defer is too expensive to be used here. -func (t *Task) block(C chan struct{}, timerChan <-chan struct{}) error { +func (t *Task) block(C <-chan struct{}, timerChan <-chan struct{}) error { // Fast path if the request is already done. select { case <-C: |