diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/isolate.rs | 9 | ||||
-rw-r--r-- | src/libdeno.rs | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/isolate.rs b/src/isolate.rs index 40dff5ed2..5a09b8855 100644 --- a/src/isolate.rs +++ b/src/isolate.rs @@ -195,6 +195,12 @@ impl Isolate { } } + fn check_promise_errors(&self) { + unsafe { + libdeno::deno_check_promise_errors(self.libdeno_isolate); + } + } + // TODO Use Park abstraction? Note at time of writing Tokio default runtime // does not have new_with_park(). pub fn event_loop(&mut self) { @@ -205,7 +211,10 @@ impl Isolate { Err(mpsc::RecvTimeoutError::Timeout) => self.timeout(), Err(e) => panic!("recv_deadline() failed: {:?}", e), } + self.check_promise_errors(); } + // Check on done + self.check_promise_errors(); } fn ntasks_increment(&mut self) { diff --git a/src/libdeno.rs b/src/libdeno.rs index 4417ac544..732c78a21 100644 --- a/src/libdeno.rs +++ b/src/libdeno.rs @@ -33,6 +33,7 @@ extern "C" { pub fn deno_new(cb: DenoRecvCb) -> *const isolate; pub fn deno_delete(i: *const isolate); pub fn deno_last_exception(i: *const isolate) -> *const c_char; + pub fn deno_check_promise_errors(i: *const isolate); pub fn deno_respond( i: *const isolate, user_data: *mut c_void, |