summaryrefslogtreecommitdiff
path: root/ext/websocket/02_websocketstream.js
diff options
context:
space:
mode:
authorMatt Mastracci <matthew@mastracci.com>2023-06-06 07:58:18 -0600
committerGitHub <noreply@github.com>2023-06-06 07:58:18 -0600
commitdf76a062fa93899a614194a34f7b7c281f9dbac5 (patch)
tree4de33bf780c637b4bf201dbdf111f6f67d3b94f2 /ext/websocket/02_websocketstream.js
parent42991017e9af59d6a5cb6b523228c62f1c32380e (diff)
perf(ext/websocket): Make send sync for non-stream websockets (#19376)
No need to go through the async machinery for `send(String | Buffer)` -- we can fire and forget, and then route any send errors into the async call we're already making (`op_ws_next_event`). Early benchmark on MacOS: Before: 155.8k msg/sec After: 166.2k msg/sec (+6.6%) Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'ext/websocket/02_websocketstream.js')
-rw-r--r--ext/websocket/02_websocketstream.js8
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/websocket/02_websocketstream.js b/ext/websocket/02_websocketstream.js
index 00d5bdaec..be1001eb6 100644
--- a/ext/websocket/02_websocketstream.js
+++ b/ext/websocket/02_websocketstream.js
@@ -34,8 +34,8 @@ const {
Uint8ArrayPrototype,
} = primordials;
const {
- op_ws_send_text,
- op_ws_send_binary,
+ op_ws_send_text_async,
+ op_ws_send_binary_async,
op_ws_next_event,
op_ws_create,
op_ws_close,
@@ -210,11 +210,11 @@ class WebSocketStream {
const writable = new WritableStream({
write: async (chunk) => {
if (typeof chunk === "string") {
- await op_ws_send_text(this[_rid], chunk);
+ await op_ws_send_text_async(this[_rid], chunk);
} else if (
ObjectPrototypeIsPrototypeOf(Uint8ArrayPrototype, chunk)
) {
- await op_ws_send_binary(this[_rid], chunk);
+ await op_ws_send_binary_async(this[_rid], chunk);
} else {
throw new TypeError(
"A chunk may only be either a string or an Uint8Array",