Skip to content

Commit bdf316b

Browse files
CopilotEduardF1
authored andcommitted
doc: clarify QUIC stream state wording
When the `body` option is omitted, no FIN is sent immediately and the writable side remains open, so the stream can still be written later via `stream.setBody()` or the writer. Per reviewer feedback, describe this state as "half-closed" rather than "half-open": in networking "half-open" implies a failure case (one peer crashed or vanished), whereas "half-closed" reflects the intentional one-direction-open semantics here. Update both `createBidirectionalStream()` and `createUnidirectionalStream()` accordingly and explicitly note that no FIN is sent immediately. Fixes: #63655 Signed-off-by: Eduard Fischer-Szava <fischer_eduard@yahoo.com>
1 parent 09fee77 commit bdf316b

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

doc/api/quic.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1281,7 +1281,7 @@ added: v23.8.0
12811281
Blob | FileHandle | AsyncIterable | Iterable | Promise | null}
12821282
The outbound body source. See [`stream.setBody()`][] for details on
12831283
supported types. When omitted, the stream starts half-closed (writable
1284-
side open, no body queued).
1284+
side open, no body queued; no FIN is sent immediately).
12851285
* `headers` {Object} Initial request or response headers to send. Only
12861286
used when the session supports headers (e.g. HTTP/3). If `body` is not
12871287
specified and `headers` is provided, the stream is treated as
@@ -1308,7 +1308,8 @@ added: v23.8.0
13081308
* Returns: {Promise} for a {quic.QuicStream}
13091309

13101310
Open a new bidirectional stream. If the `body` option is not specified,
1311-
the outgoing stream will be half-closed. The `priority` and `incremental`
1311+
the outgoing stream will be half-closed (writable side open, no FIN
1312+
sent). The `priority` and `incremental`
13121313
options are only used when the session supports priority (e.g. HTTP/3).
13131314
The `headers`, `onheaders`, `ontrailers`, `oninfo`, and `onwanttrailers`
13141315
options are only used when the session supports headers (e.g. HTTP/3).
@@ -1323,7 +1324,8 @@ added: v23.8.0
13231324
* `body` {string | ArrayBuffer | SharedArrayBuffer | ArrayBufferView |
13241325
Blob | FileHandle | AsyncIterable | Iterable | Promise | null}
13251326
The outbound body source. See [`stream.setBody()`][] for details on
1326-
supported types. When omitted, the stream is closed immediately.
1327+
supported types. When omitted, the stream starts half-closed (writable
1328+
side open, no body queued; no FIN is sent immediately).
13271329
* `headers` {Object} Initial request headers to send.
13281330
* `priority` {string} The priority level of the stream. One of `'high'`,
13291331
`'default'`, or `'low'`. **Default:** `'default'`.
@@ -1345,7 +1347,8 @@ added: v23.8.0
13451347
* Returns: {Promise} for a {quic.QuicStream}
13461348

13471349
Open a new unidirectional stream. If the `body` option is not specified,
1348-
the outgoing stream will be closed. The `priority` and `incremental`
1350+
the outgoing stream will be half-closed (writable side open, no FIN
1351+
sent). The `priority` and `incremental`
13491352
options are only used when the session supports priority (e.g. HTTP/3).
13501353

13511354
### `session.path`

0 commit comments

Comments
 (0)