diff --git a/container.go b/container.go index d128ce98dd9c7416e571e7d5d761b9e0eef43299..7414e4c45b858a60a6b55b52c5a29603375c56bf 100644 --- a/container.go +++ b/container.go @@ -161,14 +161,14 @@ func (container *Container) startPty() error { // Copy the PTYs to our broadcasters go func() { - defer container.stdout.Close() + defer container.stdout.CloseWriters() Debugf("[startPty] Begin of stdout pipe") io.Copy(container.stdout, stdoutMaster) Debugf("[startPty] End of stdout pipe") }() go func() { - defer container.stderr.Close() + defer container.stderr.CloseWriters() Debugf("[startPty] Begin of stderr pipe") io.Copy(container.stderr, stderrMaster) Debugf("[startPty] End of stderr pipe") @@ -374,10 +374,10 @@ func (container *Container) monitor() { if err := container.releaseNetwork(); err != nil { log.Printf("%v: Failed to release network: %v", container.Id, err) } - if err := container.stdout.Close(); err != nil { + if err := container.stdout.CloseWriters(); err != nil { Debugf("%s: Error close stdout: %s", container.Id, err) } - if err := container.stderr.Close(); err != nil { + if err := container.stderr.CloseWriters(); err != nil { Debugf("%s: Error close stderr: %s", container.Id, err) } if err := container.Unmount(); err != nil { diff --git a/utils.go b/utils.go index f3a0134612ed581185094f2e55103067a9d18d42..0f11f77b47fdb0660e6c086b3f2890c81a73c791 100644 --- a/utils.go +++ b/utils.go @@ -242,7 +242,7 @@ func (w *writeBroadcaster) Write(p []byte) (n int, err error) { return len(p), nil } -func (w *writeBroadcaster) Close() error { +func (w *writeBroadcaster) CloseWriters() error { w.mu.Lock() defer w.mu.Unlock() for writer := range w.writers { diff --git a/utils_test.go b/utils_test.go index c32b7bc7f9adf46b3f12c88f4df32f6d2f5ac0e0..c70aedec799e7749333105730171d3639556fbd0 100644 --- a/utils_test.go +++ b/utils_test.go @@ -122,7 +122,7 @@ func TestWriteBroadcaster(t *testing.T) { t.Errorf("Buffer contains %v", bufferC.String()) } - writer.Close() + writer.CloseWriters() } type devNullCloser int