summaryrefslogtreecommitdiff
path: root/runtime/web_worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/web_worker.rs')
-rw-r--r--runtime/web_worker.rs16
1 files changed, 7 insertions, 9 deletions
diff --git a/runtime/web_worker.rs b/runtime/web_worker.rs
index 98a8ae076..1ca5deb7a 100644
--- a/runtime/web_worker.rs
+++ b/runtime/web_worker.rs
@@ -525,15 +525,8 @@ impl WebWorker {
return Poll::Ready(Ok(()));
}
- // In case of an error, pass to parent without terminating worker
if let Err(e) = r {
- print_worker_error(e.to_string(), &self.name);
- let handle = self.internal_handle.clone();
- handle
- .post_event(WorkerControlEvent::Error(e))
- .expect("Failed to post message to host");
-
- return Poll::Pending;
+ return Poll::Ready(Err(e));
}
panic!(
@@ -593,6 +586,12 @@ pub fn run_web_worker(
return Ok(());
}
+ let result = if result.is_ok() {
+ worker.run_event_loop(true).await
+ } else {
+ result
+ };
+
if let Err(e) = result {
print_worker_error(e.to_string(), &name);
internal_handle
@@ -603,7 +602,6 @@ pub fn run_web_worker(
return Ok(());
}
- let result = worker.run_event_loop(true).await;
debug!("Worker thread shuts down {}", &name);
result
};