From ce1ad06980f78675067a2519a76601cb6cdc692b Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Fri, 28 Jun 2024 13:17:35 +0200 Subject: vm/qemu: use the default vmimpl.Multiplex() function --- vm/vmimpl/vmimpl.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'vm/vmimpl/vmimpl.go') diff --git a/vm/vmimpl/vmimpl.go b/vm/vmimpl/vmimpl.go index 0a4ada028..be7186889 100644 --- a/vm/vmimpl/vmimpl.go +++ b/vm/vmimpl/vmimpl.go @@ -168,8 +168,11 @@ func Multiplex(cmd *exec.Cmd, merger *OutputMerger, console io.Closer, timeout t signal(fmt.Errorf("instance closed")) case err := <-merger.Err: cmd.Process.Kill() - console.Close() - merger.Wait() + if console != nil { + // Only wait for the merger if we're able to control the console stream. + console.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. @@ -179,8 +182,10 @@ func Multiplex(cmd *exec.Cmd, merger *OutputMerger, console io.Closer, timeout t return } cmd.Process.Kill() - console.Close() - merger.Wait() + if console != nil { + console.Close() + merger.Wait() + } cmd.Wait() }() return merger.Output, errc, nil -- cgit mrf-deployment