1
0
mirror of https://github.com/docker/cli.git synced 2026-01-25 03:42:05 +03:00

Merge pull request #6062 from crosbymichael/update-waits

Update wait calls to call Wait on Command
Upstream-commit: b8a89ba9639fcf5528ae77af473c7d58c1251c70
Component: engine
This commit is contained in:
Victor Vieux
2014-05-27 14:17:19 -07:00
3 changed files with 7 additions and 7 deletions

View File

@@ -167,6 +167,7 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba
waitErr error
waitLock = make(chan struct{})
)
go func() {
if err := c.Wait(); err != nil {
if _, ok := err.(*exec.ExitError); !ok { // Do not propagate the error if it's simply a status code != 0
@@ -181,10 +182,11 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba
if err != nil {
if c.Process != nil {
c.Process.Kill()
c.Process.Wait()
c.Wait()
}
return -1, err
}
c.ContainerPid = pid
if startCallback != nil {

View File

@@ -56,7 +56,7 @@ func Exec(container *libcontainer.Container, term Terminal, rootfs, dataPath str
}
if err := WritePid(dataPath, command.Process.Pid, started); err != nil {
command.Process.Kill()
command.Process.Wait()
command.Wait()
return -1, err
}
defer DeletePid(dataPath)
@@ -66,7 +66,7 @@ func Exec(container *libcontainer.Container, term Terminal, rootfs, dataPath str
cleaner, err := SetupCgroups(container, command.Process.Pid)
if err != nil {
command.Process.Kill()
command.Process.Wait()
command.Wait()
return -1, err
}
if cleaner != nil {
@@ -75,7 +75,7 @@ func Exec(container *libcontainer.Container, term Terminal, rootfs, dataPath str
if err := InitializeNetworking(container, command.Process.Pid, syncPipe); err != nil {
command.Process.Kill()
command.Process.Wait()
command.Wait()
return -1, err
}

View File

@@ -126,9 +126,7 @@ func RestoreParentDeathSignal(old int) error {
// Signal self if parent is already dead. Does nothing if running in a new
// PID namespace, as Getppid will always return 0.
if syscall.Getppid() == 1 {
err := syscall.Kill(syscall.Getpid(), syscall.Signal(old))
syscall.Wait4(syscall.Getpid(), nil, 0, nil)
return err
return syscall.Kill(syscall.Getpid(), syscall.SIGKILL)
}
return nil