Concurrent Read/Write calls
tl;dr; Stream's Read/Write calls no longer block each-other, and can safely make progress concurrently.
The last version introduced locks during read/write calls to streams, which synchronized concurrent read/writes, allowing concurrent calls, but not concurrent progress to be made. This was done to insure that sync.Cond was properly broadcasting all reads/writes, so no reader missed a write.
However, this also meant that we were not taking advantage of our concurrent FileSystem under the hood.
I was able to shrink the critical sections for these locks to be very small (it now just keeps track of how much data has been written, and readers use that to see if they've read it all).
Read calls are still sequenced with other reads (but not with Closed, so that you can 'cancel' a blocking read by closing, though concurrent read/close may cause a read to fail.
Writes are sequenced with Write/Close calls so they are safe for concurrent use still.