From ab6fa44588233fa48d1ae0bf7d9b0d9e984a6af0 Mon Sep 17 00:00:00 2001 From: Ian Gudger Date: Mon, 17 Sep 2018 13:35:00 -0700 Subject: [PATCH] Allow kernel.(*Task).Block to accept an extract only channel PiperOrigin-RevId: 213328293 Change-Id: I4164133e6f709ecdb89ffbb5f7df3324c273860a --- pkg/sentry/fs/lock/lock.go | 2 +- 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: