From 15d8ab81371630f5927dfbd2f67b47c3fb2c1fa3 Mon Sep 17 00:00:00 2001 From: Mikhail Klementev Date: Mon, 8 May 2023 21:35:47 +0000 Subject: [PATCH] Do not lose stdout --- qemu/qemu-kernel.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/qemu/qemu-kernel.go b/qemu/qemu-kernel.go index 0d8fd17..5e9c34e 100644 --- a/qemu/qemu-kernel.go +++ b/qemu/qemu-kernel.go @@ -15,6 +15,7 @@ import ( "os/exec" "runtime" "strings" + "sync" "syscall" "time" @@ -421,7 +422,12 @@ func (q System) Command(user, cmd string) (output string, err error) { return } + var wg sync.WaitGroup + + wg.Add(1) go func() { + defer wg.Done() + scanner := bufio.NewScanner(stdout) for scanner.Scan() { m := scanner.Text() @@ -431,7 +437,10 @@ func (q System) Command(user, cmd string) (output string, err error) { output = strings.TrimSuffix(output, "\n") }() + wg.Add(1) go func() { + defer wg.Done() + scanner := bufio.NewScanner(stderr) for scanner.Scan() { m := scanner.Text() @@ -443,6 +452,8 @@ func (q System) Command(user, cmd string) (output string, err error) { }() err = session.Wait() + + wg.Wait() return }