From 42cc91162d681452ab5a7b14b21301a2c235b316 Mon Sep 17 00:00:00 2001 From: Carter Dodd Date: Fri, 13 May 2022 23:03:04 -0500 Subject: [PATCH] Fix error handling in goroutine --- internal/pkg/util/util.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/pkg/util/util.go b/internal/pkg/util/util.go index 0f34e571..b0b27cc4 100644 --- a/internal/pkg/util/util.go +++ b/internal/pkg/util/util.go @@ -28,6 +28,8 @@ func FirstError(errs ...error) (err error) { wwlog.ErrorExc(e, "Unhandled error") } } + + return } func DirModTime(path string) (time.Time, error) { @@ -530,10 +532,11 @@ func CpioCreate( return err } - var err_in error + err_in := make(chan error, 1) go func() { defer stdin.Close() - _, err_in := io.WriteString(stdin, strings.Join(ifiles, "\n")) + _, err := io.WriteString(stdin, strings.Join(ifiles, "\n")) + err_in <- err }() out, err := proc.CombinedOutput() @@ -541,7 +544,7 @@ func CpioCreate( wwlog.Debug(string(out)) } - return FirstError(err, err_in) + return FirstError(err, <- err_in) } /*******************************************************************************