- From: Domenic Denicola <notifications@github.com>
- Date: Wed, 15 Sep 2021 07:50:42 -0700
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/issues/1158/920090471@github.com>
> Is this different from just making HWM 0 equivalent to HWM 1? I believe it's different in the case where the queue total size is between 0 and 1. But the fundamental issue where it causes a chunk to end up in the queue remains; see below. > Okay, then it's back to the explicit controller.releaseBackpressure(). I was hoping there'd be some way to get the benefit here, without a new API, and with some way of "fixing" HWM = 0 so that it's less of a footgun and more useful. But going back to the description of the desired behavior, > With HWM = 0, the stream is asking not to put anything its queue, except for the case where it wants a chunk. Here, most of the time writer.ready will be pending. When the sink eventually wants a chunk, writer.ready temporarily becomes resolved and waits for a chunk to be written. Once that happens, writer.ready becomes pending again. I guess we might need something different after all. If we try to use the HWM, we're intricately tied to the queue; the only way to switch between "not ready" and "wants a chunk" mode is by manipulating the contents of the queue, presumably by dropping it from containing a chunk to not containing a chunk. But that means the queue must contain a chunk during the "not ready" state, which is what we want to avoid! So I am convinced that we cannot do anything just by tweaking the HWM/queue comparison mechanism. That leaves two options: - Explicit method; or - `readyWhenNotWriting` How do these compare in expressiveness? At first I thought the explicit method was more expressive, since you could combine it with any arbitrary HWM. But I wonder if that's actually true... does it make sense to use it with non-0 HWMs? How do each compare for realistic use cases? It almost feels like `readyWhenNotWriting` is just a totally alternate kind of queuing strategy, separate from a size-based one? -- 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/1158#issuecomment-920090471
Received on Wednesday, 15 September 2021 14:50:54 UTC