summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/kernel/task_block.go
diff options
context:
space:
mode:
authorAndrei Vagin <avagin@google.com>2019-05-23 23:20:11 -0700
committerShentubot <shentubot@google.com>2019-05-23 23:21:13 -0700
commita949133c4b22a87c79310b2d825f2899028d6088 (patch)
tree439e03ccfff0c8bfe64cdef3e5191d39015b957c /pkg/sentry/kernel/task_block.go
parent409e8eea60f096b34c9005b302dc821f38ac19ed (diff)
gvisor: interrupt the sendfile system call if a task has been interrupted
sendfile can be called for a big range and it can require significant amount of time to process it, so we need to handle task interrupts in this system call. PiperOrigin-RevId: 249781023 Change-Id: Ifc2ec505d74c06f5ee76f93b8d30d518ec2d4015
Diffstat (limited to 'pkg/sentry/kernel/task_block.go')
-rw-r--r--pkg/sentry/kernel/task_block.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/pkg/sentry/kernel/task_block.go b/pkg/sentry/kernel/task_block.go
index 30a7f6b1e..1c76c4d84 100644
--- a/pkg/sentry/kernel/task_block.go
+++ b/pkg/sentry/kernel/task_block.go
@@ -158,6 +158,11 @@ func (t *Task) SleepFinish(success bool) {
t.Activate()
}
+// Interrupted implements amutex.Sleeper.Interrupted
+func (t *Task) Interrupted() bool {
+ return len(t.interruptChan) != 0
+}
+
// UninterruptibleSleepStart implements context.Context.UninterruptibleSleepStart.
func (t *Task) UninterruptibleSleepStart(deactivate bool) {
if deactivate {