aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/pkg/exec.go20
1 files changed, 11 insertions, 9 deletions
diff --git a/internal/pkg/exec.go b/internal/pkg/exec.go
index e06ec32e..42831131 100644
--- a/internal/pkg/exec.go
+++ b/internal/pkg/exec.go
@@ -441,14 +441,6 @@ func (a *execArtifact) cure(f *FContext, hostNet bool) (err error) {
}()
bw := f.cache.getWriter(status)
- defer func() {
- flushErr := bw.Flush()
- if err == nil {
- err = flushErr
- }
- f.cache.putWriter(bw)
- }()
-
stdoutDone, stderrDone := make(chan struct{}), make(chan struct{})
go scanVerbose(
msg, cancel, stdoutDone,
@@ -460,7 +452,17 @@ func (a *execArtifact) cure(f *FContext, hostNet bool) (err error) {
"("+a.name+":2)",
io.TeeReader(stderr, bw),
)
- defer func() { <-stdoutDone; <-stderrDone }()
+ defer func() {
+ <-stdoutDone
+ <-stderrDone
+
+ flushErr := bw.Flush()
+ if err == nil {
+ err = flushErr
+ }
+ f.cache.putWriter(bw)
+
+ }()
} else {
z.Stdout, z.Stderr = status, status
}