Re: [whatwg/streams] reader.read() inside strategy.size() doesn't work (#794)

We have the semantic that if a read() is in progress then size() isn't called at all. I was initially surprised by this, but it makes sense. However, it means that unlike WritableStream we can't just fix the reentrancy issue by hoisting the call to size() to before any other work is done. Meaning that there is unavoidable cost in overhead for fixing this.

So I'm leaning towards (3), but I do worry that maybe the reason that no assert()s are tripping is because we don't have enough of them.

There is a risk that implementations will track extra internal state that causes them violate their own invariants and crash here. I think I will add tests for the current behaviour so that hopefully such problems can be caught early.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/issues/794#issuecomment-329755837

Received on Friday, 15 September 2017 11:28:17 UTC