diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2022-12-07 04:34:02 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-07 18:04:02 +0530 |
commit | 791e623c321dd9cc73263a64aa848af0111a812b (patch) | |
tree | 62577115a862144645a939beccf4a702c656c791 /ext/websocket/lib.rs | |
parent | 5dbc07935d47eaad48ba0a7b1a816c644f9446cd (diff) |
fix(ext/websocket): Reland make try_send ops infallible (#16968)
Reverts denoland/deno#16743
This fixes the server hangs we were seeing in benchy. cc @billywhizz
Diffstat (limited to 'ext/websocket/lib.rs')
-rw-r--r-- | ext/websocket/lib.rs | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs index 704c699a7..984d39e9d 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -504,9 +504,12 @@ pub fn op_ws_try_send_string( state: &mut OpState, rid: ResourceId, text: String, -) -> Result<bool, AnyError> { - let resource = state.resource_table.get::<WsStreamResource>(rid)?; - resource.try_send(Message::Text(text)) +) -> bool { + let resource = match state.resource_table.get::<WsStreamResource>(rid) { + Ok(resource) => resource, + Err(_) => return false, + }; + resource.try_send(Message::Text(text)).is_ok() } #[op(fast)] @@ -514,9 +517,12 @@ pub fn op_ws_try_send_binary( state: &mut OpState, rid: u32, value: &[u8], -) -> Result<bool, AnyError> { - let resource = state.resource_table.get::<WsStreamResource>(rid)?; - resource.try_send(Message::Binary(value.to_vec())) +) -> bool { + let resource = match state.resource_table.get::<WsStreamResource>(rid) { + Ok(resource) => resource, + Err(_) => return false, + }; + resource.try_send(Message::Binary(value.to_vec())).is_ok() } #[op(deferred)] |