| package daemon |
| |
| import ( |
| "time" |
| |
| "golang.org/x/net/context" |
| ) |
| |
| // ContainerWait stops processing until the given container is |
| // stopped. If the container is not found, an error is returned. On a |
| // successful stop, the exit code of the container is returned. On a |
| // timeout, an error is returned. If you want to wait forever, supply |
| // a negative duration for the timeout. |
| func (daemon *Daemon) ContainerWait(name string, timeout time.Duration) (int, error) { |
| container, err := daemon.GetContainer(name) |
| if err != nil { |
| return -1, err |
| } |
| |
| return container.WaitStop(timeout) |
| } |
| |
| // ContainerWaitWithContext returns a channel where exit code is sent |
| // when container stops. Channel can be cancelled with a context. |
| func (daemon *Daemon) ContainerWaitWithContext(ctx context.Context, name string) error { |
| container, err := daemon.GetContainer(name) |
| if err != nil { |
| return err |
| } |
| |
| return container.WaitWithContext(ctx) |
| } |