From 79086a187355d1999a47339aa0d3fbd9c61d4972 Mon Sep 17 00:00:00 2001 From: Kenfe-Mickael Laventure Date: Fri, 23 Jun 2017 12:05:24 -0700 Subject: [PATCH] Simplify task.Wait() a bit Signed-off-by: Kenfe-Mickael Laventure --- task.go | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/task.go b/task.go index 1865b185b..800d23cd4 100644 --- a/task.go +++ b/task.go @@ -147,27 +147,29 @@ func (t *task) Wait(ctx context.Context) (uint32, error) { return UnknownExitStatus, err } <-t.pidSync -evloop: + + var e eventsapi.RuntimeEvent + for { evt, err := eventstream.Recv() if err != nil { return UnknownExitStatus, err } - switch { - case events.Is(evt.Event, &eventsapi.RuntimeEvent{}): - var e eventsapi.RuntimeEvent - if err := events.UnmarshalEvent(evt.Event, &e); err != nil { - return UnknownExitStatus, err - } + if !events.Is(evt.Event, &eventsapi.RuntimeEvent{}) { + continue + } - if e.Type != tasktypes.Event_EXIT { - continue evloop - } + if err := events.UnmarshalEvent(evt.Event, &e); err != nil { + return UnknownExitStatus, err + } - if e.ID == t.containerID && e.Pid == t.pid { - return e.ExitStatus, nil - } + if e.Type != tasktypes.Event_EXIT { + continue + } + + if e.ID == t.containerID && e.Pid == t.pid { + return e.ExitStatus, nil } } }