X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d81ea65da05119d5c6480d373b5d42bbee8ae1ad..628f2f2e1bfabdb7221badab3d5189011aee5a54:/sdk/go/streamer/transfer.go diff --git a/sdk/go/streamer/transfer.go b/sdk/go/streamer/transfer.go index a4a194f69b..499b4d9668 100644 --- a/sdk/go/streamer/transfer.go +++ b/sdk/go/streamer/transfer.go @@ -16,13 +16,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 +249,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 }