Преглед изворни кода

Fix closing attach streams on lost tcp connection

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Tonis Tiigi пре 9 година
родитељ
комит
a47cd63915
1 измењених фајлова са 4 додато и 0 уклоњено
  1. 4 0
      pkg/ioutils/bytespipe.go

+ 4 - 0
pkg/ioutils/bytespipe.go

@@ -51,6 +51,7 @@ func (bp *BytesPipe) Write(p []byte) (int, error) {
 	bp.mu.Lock()
 	bp.mu.Lock()
 
 
 	written := 0
 	written := 0
+loop0:
 	for {
 	for {
 		if bp.closeErr != nil {
 		if bp.closeErr != nil {
 			bp.mu.Unlock()
 			bp.mu.Unlock()
@@ -85,6 +86,9 @@ func (bp *BytesPipe) Write(p []byte) (int, error) {
 		// make sure the buffer doesn't grow too big from this write
 		// make sure the buffer doesn't grow too big from this write
 		for bp.bufLen >= blockThreshold {
 		for bp.bufLen >= blockThreshold {
 			bp.wait.Wait()
 			bp.wait.Wait()
+			if bp.closeErr != nil {
+				continue loop0
+			}
 		}
 		}
 
 
 		// add new byte slice to the buffers slice and continue writing
 		// add new byte slice to the buffers slice and continue writing