From 037b77dc65b054baa4bd72db8a4f4940d87b695d Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Sun, 6 May 2018 14:24:42 +0200 Subject: vm/{adb,isolated}: dudup common code Found with gometalinter/dupl. Update #538 --- vm/adb/adb.go | 38 +------------------------------------- 1 file changed, 1 insertion(+), 37 deletions(-) (limited to 'vm/adb') diff --git a/vm/adb/adb.go b/vm/adb/adb.go index 21fd5f741..e6908a9aa 100644 --- a/vm/adb/adb.go +++ b/vm/adb/adb.go @@ -422,41 +422,5 @@ func (inst *instance) Run(timeout time.Duration, stop <-chan bool, command strin merger.Add("console", tty) merger.Add("adb", adbRpipe) - 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: - adb.Process.Kill() - tty.Close() - merger.Wait() - if cmdErr := adb.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 - } - adb.Process.Kill() - tty.Close() - merger.Wait() - adb.Wait() - }() - return merger.Output, errc, nil + return vmimpl.Multiplex(adb, merger, tty, timeout, stop, inst.closed, inst.debug) } -- cgit mrf-deployment