diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-02-08 20:34:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-08 20:34:31 +0100 |
commit | cdba5ab6fc633606aaa6f95d0825832c3ac6fe5c (patch) | |
tree | e8dee2801e14b65b2da6aca62e39cd3d3ac2a786 /cli/ops/plugins.rs | |
parent | 619a24390ff15d5ea5e577a4d0391823f94e8592 (diff) |
refactor: rename ThreadSafeState, use RefCell for mutable state (#3931)
* rename ThreadSafeState to State
* State stores InnerState wrapped in Rc and RefCell
Diffstat (limited to 'cli/ops/plugins.rs')
-rw-r--r-- | cli/ops/plugins.rs | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/cli/ops/plugins.rs b/cli/ops/plugins.rs index 24a59917e..ecaa66b53 100644 --- a/cli/ops/plugins.rs +++ b/cli/ops/plugins.rs @@ -1,7 +1,7 @@ use super::dispatch_json::{Deserialize, JsonOp, Value}; use crate::fs as deno_fs; use crate::ops::json_op; -use crate::state::ThreadSafeState; +use crate::state::State; use deno_core::*; use dlopen::symbor::Library; use std::collections::HashMap; @@ -9,11 +9,7 @@ use std::ffi::OsStr; use std::path::Path; use std::sync::Arc; -pub fn init( - i: &mut Isolate, - s: &ThreadSafeState, - r: Arc<deno_core::OpRegistry>, -) { +pub fn init(i: &mut Isolate, s: &State, r: Arc<deno_core::OpRegistry>) { let r_ = r; i.register_op( "open_plugin", @@ -56,7 +52,7 @@ struct OpenPluginArgs { pub fn op_open_plugin( registry: &Arc<deno_core::OpRegistry>, - state: &ThreadSafeState, + state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, ) -> Result<JsonOp, ErrBox> { @@ -70,9 +66,14 @@ pub fn op_open_plugin( lib, ops: HashMap::new(), }; - let mut table = state.lock_resource_table(); - let rid = table.add("plugin", Box::new(plugin_resource)); - let plugin_resource = table.get_mut::<PluginResource>(rid).unwrap(); + let mut state_ = state.borrow_mut(); + let rid = state_ + .resource_table + .add("plugin", Box::new(plugin_resource)); + let plugin_resource = state_ + .resource_table + .get_mut::<PluginResource>(rid) + .unwrap(); let init_fn = *unsafe { plugin_resource |