Simplify task.Wait() a bit

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
This commit is contained in:
Kenfe-Mickael Laventure 2017-06-23 12:05:24 -07:00
parent 003ed58859
commit 79086a1873
No known key found for this signature in database
GPG Key ID: 40CF16616B361216

28
task.go
View File

@ -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
}
}
}