Merge branch '8784-dir-listings'
[arvados.git] / sdk / go / streamer / transfer.go
index a4a194f69bcc8fbdbf43650caa881325bde5dc24..bea27f8f81d06ede2631fd5c89f29d0c35c2d067 100644 (file)
@@ -1,3 +1,7 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: Apache-2.0
+
 /* Internal implementation of AsyncStream.
 Outline of operation:
 
@@ -16,13 +20,13 @@ channel back to the transfer() function.
 Meanwhile, the transfer() function selects() on two channels, the "requests"
 channel and the "slices" channel.
 
-When a message is recieved on the "slices" channel, this means the a new
+When a message is received on the "slices" channel, this means the a new
 section of the buffer has data, or an error is signaled.  Since the data has
 been read directly into the source_buffer, it is able to simply increases the
 size of the body slice to encompass the newly filled in section.  Then any
 pending reads are serviced with handleReadRequest (described below).
 
-When a message is recieved on the "requests" channel, it means a StreamReader
+When a message is received on the "requests" channel, it means a StreamReader
 wants access to a slice of the buffer.  This is passed to handleReadRequest().
 
 The handleReadRequest() function takes a sliceRequest consisting of a buffer
@@ -249,9 +253,7 @@ func (this *AsyncStream) transfer(source_reader io.Reader) {
                                        }
                                }
                        } else {
-                               if reader_status == io.EOF {
-                                       // no more reads expected, so this is ok
-                               } else {
+                               if reader_status == nil {
                                        // slices channel closed without signaling EOF
                                        reader_status = io.ErrUnexpectedEOF
                                }