diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-05-06 14:24:42 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-05-06 14:24:42 +0200 |
| commit | 037b77dc65b054baa4bd72db8a4f4940d87b695d (patch) | |
| tree | 544ff5cb867f3bbd192c74d1545385ca89713d2d /vm/isolated | |
| parent | 6c18ddb0e6d4133b05c18275b062808dadc2d294 (diff) | |
vm/{adb,isolated}: dudup common code
Found with gometalinter/dupl.
Update #538
Diffstat (limited to 'vm/isolated')
| -rw-r--r-- | vm/isolated/isolated.go | 38 |
1 files changed, 1 insertions, 37 deletions
diff --git a/vm/isolated/isolated.go b/vm/isolated/isolated.go index 4a6bf7fe6..86adb80dc 100644 --- a/vm/isolated/isolated.go +++ b/vm/isolated/isolated.go @@ -305,43 +305,7 @@ func (inst *instance) Run(timeout time.Duration, stop <-chan bool, command strin merger.Add("dmesg", dmesg) merger.Add("ssh", rpipe) - errc := make(chan error, 1) - signal := func(err error) { - select { - case errc <- err: - default: - } - } - - go func() { - select { - case <-time.After(timeout): - signal(vmimpl.ErrTimeout) - case <-stop: - signal(vmimpl.ErrTimeout) - case <-inst.closed: - if inst.debug { - log.Logf(0, "instance closed") - } - signal(fmt.Errorf("instance closed")) - case err := <-merger.Err: - cmd.Process.Kill() - dmesg.Close() - merger.Wait() - if cmdErr := cmd.Wait(); cmdErr == nil { - // If the command exited successfully, we got EOF error from merger. - // But in this case no error has happened and the EOF is expected. - err = nil - } - signal(err) - return - } - cmd.Process.Kill() - dmesg.Close() - merger.Wait() - cmd.Wait() - }() - return merger.Output, errc, nil + return vmimpl.Multiplex(cmd, merger, dmesg, timeout, stop, inst.closed, inst.debug) } func (inst *instance) sshArgs(portArg string) []string { |
