diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2022-04-22 16:19:08 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-22 16:19:08 +0530 |
commit | 57f7e07c13a1a692602022af4fc32c6ac352bb72 (patch) | |
tree | e2b6bf271ebda2aecf158b25c9d6c466461549dd /ext/net/01_net.js | |
parent | 2724235ec798f1fbf8fb5bd291615987ac4b919e (diff) |
Reland "perf(http): optimize ReadableStreams backed by a resource" (#14346)
Diffstat (limited to 'ext/net/01_net.js')
-rw-r--r-- | ext/net/01_net.js | 30 |
1 files changed, 1 insertions, 29 deletions
diff --git a/ext/net/01_net.js b/ext/net/01_net.js index 48cbfaaab..fde75fe56 100644 --- a/ext/net/01_net.js +++ b/ext/net/01_net.js @@ -4,7 +4,7 @@ ((window) => { const core = window.Deno.core; const { BadResourcePrototype, InterruptedPrototype } = core; - const { ReadableStream, WritableStream } = window.__bootstrap.streams; + const { WritableStream, readableStreamForRid } = window.__bootstrap.streams; const { Error, ObjectPrototypeIsPrototypeOf, @@ -65,8 +65,6 @@ return core.opAsync("op_dns_resolve", { query, recordType, options }); } - const DEFAULT_CHUNK_SIZE = 64 * 1024; - function tryClose(rid) { try { core.close(rid); @@ -75,32 +73,6 @@ } } - function readableStreamForRid(rid) { - return new ReadableStream({ - type: "bytes", - async pull(controller) { - const v = controller.byobRequest.view; - try { - const bytesRead = await read(rid, v); - if (bytesRead === null) { - tryClose(rid); - controller.close(); - controller.byobRequest.respond(0); - } else { - controller.byobRequest.respond(bytesRead); - } - } catch (e) { - controller.error(e); - tryClose(rid); - } - }, - cancel() { - tryClose(rid); - }, - autoAllocateChunkSize: DEFAULT_CHUNK_SIZE, - }); - } - function writableStreamForRid(rid) { return new WritableStream({ async write(chunk, controller) { |