mirror of
https://github.com/denoland/deno.git
synced 2025-09-23 02:42:34 +00:00
refactor: rename ThreadSafeState, use RefCell for mutable state (#3931)
* rename ThreadSafeState to State * State stores InnerState wrapped in Rc and RefCell
This commit is contained in:
parent
619a24390f
commit
cdba5ab6fc
31 changed files with 454 additions and 464 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue