private async Task <int> ReadIntoSecondaryAfterTeeWriteIsFinished(byte[] buf) { await TeeWrite; // we can't reuse the buffer as long as it isn't fully written int read = await Underlying.ReadAsync(buf, 0, buf.Length); // alright, now let's read in some data TeeWrite = Additional.WriteAsync(buf, 0, read); return(read); }