diff options
author | Matt Mastracci <matthew@mastracci.com> | 2023-12-26 18:30:26 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-27 02:30:26 +0100 |
commit | 0efe438f7c191d8504355e03b27fe7e3055c9387 (patch) | |
tree | b96fe9a897eb6941c87a95a04520662d26c02fbe /ext/http/01_http.js | |
parent | e33c5eb704c22fad69876e87d9b852a4e5072a7a (diff) |
perf: remove opAsync (#21690)
`opAsync` requires a lookup by name on each async call. This is a
mechanical translation of all opAsync calls to ensureFastOps.
The `opAsync` API on Deno.core will be removed at a later time.
Diffstat (limited to 'ext/http/01_http.js')
-rw-r--r-- | ext/http/01_http.js | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/ext/http/01_http.js b/ext/http/01_http.js index 309e44ee4..1953895fd 100644 --- a/ext/http/01_http.js +++ b/ext/http/01_http.js @@ -2,7 +2,6 @@ import { core, internals, primordials } from "ext:core/mod.js"; const { BadResourcePrototype, InterruptedPrototype, ops } = core; -const { op_http_write } = Deno.core.ensureFastOps(); import { InnerBody } from "ext:deno_fetch/22_body.js"; import { Event, setEventTargetData } from "ext:deno_web/02_event.js"; import { BlobPrototype } from "ext:deno_web/09_file.js"; @@ -64,6 +63,15 @@ const { Uint8Array, Uint8ArrayPrototype, } = primordials; +const { + op_http_accept, + op_http_shutdown, + op_http_upgrade, + op_http_write, + op_http_upgrade_websocket, + op_http_write_headers, + op_http_write_resource, +} = core.ensureFastOps(); const connErrorSymbol = Symbol("connError"); const _deferred = Symbol("upgradeHttpDeferred"); @@ -103,7 +111,7 @@ class HttpConn { async nextRequest() { let nextRequest; try { - nextRequest = await core.opAsync("op_http_accept", this.#rid); + nextRequest = await op_http_accept(this.#rid); } catch (error) { this.close(); // A connection error seen here would cause disrupted responses to throw @@ -267,8 +275,7 @@ function createRespondWith( ObjectPrototypeIsPrototypeOf(Uint8ArrayPrototype, respBody) ); try { - await core.opAsync( - "op_http_write_headers", + await op_http_write_headers( streamRid, innerResp.status ?? 200, innerResp.headerList, @@ -308,8 +315,7 @@ function createRespondWith( } reader = respBody.getReader(); // Acquire JS lock. try { - await core.opAsync( - "op_http_write_resource", + await op_http_write_resource( streamRid, resourceBacking.rid, ); @@ -357,7 +363,7 @@ function createRespondWith( if (success) { try { - await core.opAsync("op_http_shutdown", streamRid); + await op_http_shutdown(streamRid); } catch (error) { await reader.cancel(error); throw error; @@ -367,7 +373,7 @@ function createRespondWith( const deferred = request[_deferred]; if (deferred) { - const res = await core.opAsync("op_http_upgrade", streamRid); + const res = await op_http_upgrade(streamRid); let conn; if (res.connType === "tcp") { conn = new TcpConn(res.connRid, remoteAddr, localAddr); @@ -383,8 +389,7 @@ function createRespondWith( } const ws = resp[_ws]; if (ws) { - const wsRid = await core.opAsync( - "op_http_upgrade_websocket", + const wsRid = await op_http_upgrade_websocket( streamRid, ); ws[_rid] = wsRid; |