From 8fae8a5b7736fe12f31ce1dfb9f97003312270db Mon Sep 17 00:00:00 2001 From: Lantao Liu Date: Wed, 2 Aug 2017 21:45:01 +0000 Subject: [PATCH] Cancel event subscribe context in Wait. Signed-off-by: Lantao Liu --- process.go | 4 +++- task.go | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/process.go b/process.go index 4135e0d17..fb0c31aab 100644 --- a/process.go +++ b/process.go @@ -69,7 +69,9 @@ func (p *process) Kill(ctx context.Context, s syscall.Signal) error { } func (p *process) Wait(ctx context.Context) (uint32, error) { - eventstream, err := p.task.client.EventService().Subscribe(ctx, &eventsapi.SubscribeRequest{ + cancellable, cancel := context.WithCancel(ctx) + defer cancel() + eventstream, err := p.task.client.EventService().Subscribe(cancellable, &eventsapi.SubscribeRequest{ Filters: []string{"topic==" + runtime.TaskExitEventTopic}, }) if err != nil { diff --git a/task.go b/task.go index f7cb4bb4d..677e104d7 100644 --- a/task.go +++ b/task.go @@ -167,7 +167,9 @@ func (t *task) Status(ctx context.Context) (Status, error) { } func (t *task) Wait(ctx context.Context) (uint32, error) { - eventstream, err := t.client.EventService().Subscribe(ctx, &eventsapi.SubscribeRequest{ + cancellable, cancel := context.WithCancel(ctx) + defer cancel() + eventstream, err := t.client.EventService().Subscribe(cancellable, &eventsapi.SubscribeRequest{ Filters: []string{"topic==" + runtime.TaskExitEventTopic}, }) if err != nil {