diff options
| author | Ryan Dahl <ry@tinyclouds.org> | 2020-09-10 09:57:45 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-10 09:57:45 -0400 |
| commit | 7c2e7c660804afca823d60e6496aa853f75db16c (patch) | |
| tree | b7746b181c1564c6b1abd2e906662f9e6b008417 /cli/web_worker.rs | |
| parent | 6f70e6e72ba2d5c1de7495adac37c1e4f4e86b24 (diff) | |
Use gotham-like state for ops (#7385)
Provides a concrete state type that can be dynamically added. This is necessary for op crates.
* renames BasicState to OpState
* async ops take `Rc<RefCell<OpState>>`
* sync ops take `&mut OpState`
* removes `OpRegistry`, `OpRouter` traits
* `get_error_class_fn` moved to OpState
* ResourceTable moved to OpState
Diffstat (limited to 'cli/web_worker.rs')
| -rw-r--r-- | cli/web_worker.rs | 54 |
1 files changed, 25 insertions, 29 deletions
diff --git a/cli/web_worker.rs b/cli/web_worker.rs index 095d5b376..ebf8fa698 100644 --- a/cli/web_worker.rs +++ b/cli/web_worker.rs @@ -102,7 +102,7 @@ impl WebWorker { terminate_tx, }; - let web_worker = Self { + let mut web_worker = Self { worker, event_loop_idle: false, terminate_rx, @@ -110,37 +110,33 @@ impl WebWorker { has_deno_namespace, }; - let handle = web_worker.thread_safe_handle(); - { - ops::runtime::init(&state); - ops::web_worker::init( - &state, - &web_worker.worker.internal_channels.sender, - handle, - ); - ops::worker_host::init(&state); - ops::idna::init(&state); - ops::io::init(&state); - ops::resources::init(&state); - ops::errors::init(&state); - ops::timers::init(&state); - ops::fetch::init(&state); - ops::websocket::init(&state); + ops::runtime::init(&mut web_worker.worker); + let sender = web_worker.worker.internal_channels.sender.clone(); + let handle = web_worker.thread_safe_handle(); + ops::web_worker::init(&mut web_worker.worker, sender, handle); + ops::worker_host::init(&mut web_worker.worker); + ops::idna::init(&mut web_worker.worker); + ops::io::init(&mut web_worker.worker); + ops::resources::init(&mut web_worker.worker); + ops::errors::init(&mut web_worker.worker); + ops::timers::init(&mut web_worker.worker); + ops::fetch::init(&mut web_worker.worker); + ops::websocket::init(&mut web_worker.worker); if has_deno_namespace { - ops::runtime_compiler::init(&state); - ops::fs::init(&state); - ops::fs_events::init(&state); - ops::plugin::init(&state); - ops::net::init(&state); - ops::tls::init(&state); - ops::os::init(&state); - ops::permissions::init(&state); - ops::process::init(&state); - ops::random::init(&state); - ops::signal::init(&state); - ops::tty::init(&state); + ops::runtime_compiler::init(&mut web_worker.worker); + ops::fs::init(&mut web_worker.worker); + ops::fs_events::init(&mut web_worker.worker); + ops::plugin::init(&mut web_worker.worker); + ops::net::init(&mut web_worker.worker); + ops::tls::init(&mut web_worker.worker); + ops::os::init(&mut web_worker.worker); + ops::permissions::init(&mut web_worker.worker); + ops::process::init(&mut web_worker.worker); + ops::random::init(&mut web_worker.worker); + ops::signal::init(&mut web_worker.worker); + ops::tty::init(&mut web_worker.worker); } } |
