diff options
Diffstat (limited to 'src/handlers.rs')
-rw-r--r-- | src/handlers.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/handlers.rs b/src/handlers.rs index c914df36d..42becc0b0 100644 --- a/src/handlers.rs +++ b/src/handlers.rs @@ -45,6 +45,7 @@ pub fn msg_from_js(state: Arc<IsolateState>, bytes: &[u8]) -> (bool, Box<Op>) { msg::Any::Start => handle_start, msg::Any::CodeFetch => handle_code_fetch, msg::Any::CodeCache => handle_code_cache, + msg::Any::SetTimeout => handle_set_timeout, msg::Any::Environ => handle_env, msg::Any::FetchReq => handle_fetch_req, msg::Any::TimerStart => handle_timer_start, @@ -236,6 +237,15 @@ fn handle_code_cache(state: Arc<IsolateState>, base: &msg::Base) -> Box<Op> { }())) } +fn handle_set_timeout(state: Arc<IsolateState>, base: &msg::Base) -> Box<Op> { + let msg = base.msg_as_set_timeout().unwrap(); + let val = msg.timeout() as isize; + state + .timeout + .swap(val, std::sync::atomic::Ordering::Relaxed); + ok_future(empty_buf()) +} + fn handle_set_env(state: Arc<IsolateState>, base: &msg::Base) -> Box<Op> { let msg = base.msg_as_set_env().unwrap(); let key = msg.key().unwrap(); |