diff options
author | Luca Casonato <hello@lcas.dev> | 2022-10-10 10:28:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-10 10:28:35 +0200 |
commit | 1ab3691b091e34ffa5a0b8f2cd18a87da8c4930c (patch) | |
tree | 919c07adfc4f1f9818ec6827adedf17d7a71e2f5 /ext/net | |
parent | 4d6aed1b528efc9bdac7cce7922259f5c703ec55 (diff) |
feat(core): add Deno.core.writeAll(rid, chunk) (#16228)
This commit adds a new op_write_all to core that allows writing an
entire chunk in a single async op call. Internally this calls
`Resource::write_all`.
The `writableStreamForRid` has been moved to `06_streams.js` now, and
uses this new op. Various other code paths now also use this new op.
Closes #16227
Diffstat (limited to 'ext/net')
-rw-r--r-- | ext/net/01_net.js | 39 |
1 files changed, 2 insertions, 37 deletions
diff --git a/ext/net/01_net.js b/ext/net/01_net.js index 04360116b..d7a093ba6 100644 --- a/ext/net/01_net.js +++ b/ext/net/01_net.js @@ -4,7 +4,8 @@ ((window) => { const core = window.Deno.core; const { BadResourcePrototype, InterruptedPrototype, ops } = core; - const { WritableStream, readableStreamForRid } = window.__bootstrap.streams; + const { readableStreamForRid, writableStreamForRid } = + window.__bootstrap.streams; const { Error, ObjectPrototypeIsPrototypeOf, @@ -65,39 +66,6 @@ return core.opAsync("op_dns_resolve", { query, recordType, options }); } - function tryClose(rid) { - try { - core.close(rid); - } catch { - // Ignore errors - } - } - - function writableStreamForRid(rid) { - return new WritableStream({ - async write(chunk, controller) { - try { - let nwritten = 0; - while (nwritten < chunk.length) { - nwritten += await write( - rid, - TypedArrayPrototypeSubarray(chunk, nwritten), - ); - } - } catch (e) { - controller.error(e); - tryClose(rid); - } - }, - close() { - tryClose(rid); - }, - abort() { - tryClose(rid); - }, - }); - } - class Conn { #rid = 0; #remoteAddr = null; @@ -353,7 +321,4 @@ Datagram, resolveDns, }; - window.__bootstrap.streamUtils = { - writableStreamForRid, - }; })(this); |