aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--vm/merger.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/vm/merger.go b/vm/merger.go
index b19326ef6..2effd0f45 100644
--- a/vm/merger.go
+++ b/vm/merger.go
@@ -41,9 +41,12 @@ func (merger *OutputMerger) Add(r io.ReadCloser) {
if merger.tee != nil {
merger.tee.Write(out)
}
- merger.Output <- append([]byte{}, out...)
- r := copy(pending[:], pending[pos+1:])
- pending = pending[:r]
+ select {
+ case merger.Output <- append([]byte{}, out...):
+ r := copy(pending[:], pending[pos+1:])
+ pending = pending[:r]
+ default:
+ }
}
}
if err != nil {
@@ -52,7 +55,10 @@ func (merger *OutputMerger) Add(r io.ReadCloser) {
if merger.tee != nil {
merger.tee.Write(pending)
}
- merger.Output <- pending
+ select {
+ case merger.Output <- pending:
+ default:
+ }
}
r.Close()
merger.wg.Done()