Skip to content

Commit

Permalink
[wasm-client] keeping ownership over 'ReceivedBufferRequestSender' ch…
Browse files Browse the repository at this point in the history
…annel when spawning 'ResponsePusher'
  • Loading branch information
jstuczyn committed Oct 2, 2023
1 parent a06c2fb commit b96836f
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 6 deletions.
2 changes: 1 addition & 1 deletion common/task/src/manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,7 @@ impl TaskClient {
.await
{
self.log(Level::Error, "Task stopped without shutdown called");
panic!("{timeout}")
panic!("{:?}: {timeout}", self.name)
}
}

Expand Down
3 changes: 3 additions & 0 deletions wasm/client/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ build:
wasm-pack build --scope nymproject --target web --out-dir ../../dist/wasm/client
wasm-opt -Oz -o ../../dist/wasm/client/nym_client_wasm_bg.wasm ../../dist/wasm/client/nym_client_wasm_bg.wasm

build-debug-dev:
wasm-pack build --scope nymproject --target no-modules

build-rust-node:
wasm-pack build --scope nymproject --target nodejs --out-dir ../../dist/node/wasm/client
wasm-opt -Oz -o ../../dist/node/wasm/client/nym_client_wasm_bg.wasm ../../dist/node/wasm/client/nym_client_wasm_bg.wasm
Expand Down
2 changes: 1 addition & 1 deletion wasm/client/internal-dev/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@
"webpack-dev-server": "^4.7.4"
},
"dependencies": {
"@nymproject/nym-client-wasm": "file:../../../dist/wasm/client"
"@nymproject/nym-client-wasm": "file:../pkg"
}
}
2 changes: 1 addition & 1 deletion wasm/client/internal-dev/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ module.exports = {
patterns: [
'index.html',
{
from: '../../../dist/wasm/client/*.(js|wasm)',
from: '../pkg/*.(js|wasm)',
to: '[name][ext]',
},
],
Expand Down
4 changes: 2 additions & 2 deletions wasm/client/internal-dev/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"

"@nymproject/nym-client-wasm@file:../../../dist/wasm/client":
version "1.2.0-rc.2"
"@nymproject/nym-client-wasm@file:../pkg":
version "1.2.0-rc.9"

"@types/body-parser@*":
version "1.19.2"
Expand Down
11 changes: 10 additions & 1 deletion wasm/client/src/response_pusher.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,16 @@ use wasm_bindgen::JsValue;
use wasm_bindgen_futures::spawn_local;
use wasm_client_core::client::base_client::ClientOutput;
use wasm_client_core::client::received_buffer::{
ReceivedBufferMessage, ReconstructedMessagesReceiver,
ReceivedBufferMessage, ReceivedBufferRequestSender, ReconstructedMessagesReceiver,
};
use wasm_utils::console_error;

pub(crate) struct ResponsePusher {
reconstructed_receiver: ReconstructedMessagesReceiver,

// we need to keep that channel alive as not to trigger the shutdown
_received_buffer_request_sender: ReceivedBufferRequestSender,

on_message: js_sys::Function,
}

Expand All @@ -36,12 +40,17 @@ impl ResponsePusher {

ResponsePusher {
reconstructed_receiver,
_received_buffer_request_sender: client_output.received_buffer_request_sender,
on_message,
}
}

pub(crate) fn start(mut self) {
spawn_local(async move {
// for some reason if this channel is not explicitly moved into the block,
// it gets dropped when spawning the promise
let _request_sender = self._received_buffer_request_sender;

let this = JsValue::null();

while let Some(reconstructed) = self.reconstructed_receiver.next().await {
Expand Down

0 comments on commit b96836f

Please sign in to comment.