summaryrefslogtreecommitdiffhomepage
path: root/pkg
diff options
context:
space:
mode:
authorIan Gudger <igudger@google.com>2018-09-17 13:35:00 -0700
committerShentubot <shentubot@google.com>2018-09-17 13:35:54 -0700
commitab6fa44588233fa48d1ae0bf7d9b0d9e984a6af0 (patch)
treeb084d11cc5cc42b68aef31a2244788471ed1af8f /pkg
parenta452971630a4b43f671efffdacb5a4892cf25579 (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.go2
-rw-r--r--pkg/sentry/kernel/task_block.go6
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: