I don't understand, this seems orthogonal to the problem you're describing, where refusing to read from one stream can starve the other?
What I am saying is that there is probably no problem with one stream starving another one, as it should be. At some point I thought that was the problem, because I noticed that a stream wasn't producing samples any more, but that probably happened because `Shutdown()` had been called in the mean time.