Re: [whatwg/streams] Release reader immediately when shutting down a pipe (PR #1208)

@domenic commented on this pull request.



> @@ -2210,6 +2221,10 @@ The following abstract operations operate on {{ReadableStream}} instances at a h
     ask to shutdown, optionally with an error |error|, then:
    1. If |shuttingDown| is true, abort these substeps.
    1. Set |shuttingDown| to true.
+   1. If |reader| [=implements=] {{ReadableStreamBYOBReader}}, perform

Reader will always be a default reader at this point right?

> @@ -475,6 +483,20 @@ function WritableStreamDefaultWriterGetDesiredSize(writer) {
   return WritableStreamDefaultControllerGetDesiredSize(stream._controller);
 }
 
+function WritableStreamDefaultWriterIsOrBecomesErrored(writer, errorListener) {

Is this very specific to the one change from "writable" to "erroring"? In the reference implementation you've added a much more general listener setup.

I would suggest a general note saying "for all the 'becomes' conditions in the above, they must be processed synchronously as part of the [[state]] update, before any other web developer code can run." And then, if we anticipate that only being impactful in the one transition, we could append the extra note: "NOTE: Currently this requirement only has observable consequences for [the transition for writable stream states from from "writable" to "erroring"], and others could be done as asynchronous listeners". Or, if we think we might expand this listener usage in the future, then we should probably omit that note.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/pull/1208#pullrequestreview-862955818
You are receiving this because you are subscribed to this thread.

Message ID: <whatwg/streams/pull/1208/review/862955818@github.com>

Received on Tuesday, 25 January 2022 22:58:05 UTC