diff options
Diffstat (limited to 'cli/ops/files.rs')
-rw-r--r-- | cli/ops/files.rs | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/cli/ops/files.rs b/cli/ops/files.rs index f32de90b9..d625d4590 100644 --- a/cli/ops/files.rs +++ b/cli/ops/files.rs @@ -6,7 +6,7 @@ use crate::deno_error::DenoError; use crate::deno_error::ErrorKind; use crate::fs as deno_fs; use crate::ops::json_op; -use crate::state::ThreadSafeState; +use crate::state::State; use deno_core::*; use futures::future::FutureExt; use std; @@ -15,7 +15,7 @@ use std::io::SeekFrom; use std::path::Path; use tokio; -pub fn init(i: &mut Isolate, s: &ThreadSafeState) { +pub fn init(i: &mut Isolate, s: &State) { i.register_op("open", s.core_op(json_op(s.stateful_op(op_open)))); i.register_op("close", s.core_op(json_op(s.stateful_op(op_close)))); i.register_op("seek", s.core_op(json_op(s.stateful_op(op_seek)))); @@ -43,7 +43,7 @@ struct OpenOptions { } fn op_open( - state: &ThreadSafeState, + state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, ) -> Result<JsonOp, ErrBox> { @@ -130,8 +130,10 @@ fn op_open( let fut = async move { let fs_file = open_options.open(filename).await?; - let mut table = state_.lock_resource_table(); - let rid = table.add("fsFile", Box::new(StreamResource::FsFile(fs_file))); + let mut state = state_.borrow_mut(); + let rid = state + .resource_table + .add("fsFile", Box::new(StreamResource::FsFile(fs_file))); Ok(json!(rid)) }; @@ -149,14 +151,17 @@ struct CloseArgs { } fn op_close( - state: &ThreadSafeState, + state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, ) -> Result<JsonOp, ErrBox> { let args: CloseArgs = serde_json::from_value(args)?; - let mut table = state.lock_resource_table(); - table.close(args.rid as u32).ok_or_else(bad_resource)?; + let mut state = state.borrow_mut(); + state + .resource_table + .close(args.rid as u32) + .ok_or_else(bad_resource)?; Ok(JsonOp::Sync(json!({}))) } @@ -170,7 +175,7 @@ struct SeekArgs { } fn op_seek( - state: &ThreadSafeState, + state: &State, args: Value, _zero_copy: Option<ZeroCopyBuf>, ) -> Result<JsonOp, ErrBox> { @@ -191,13 +196,14 @@ fn op_seek( } }; - let mut table = state.lock_resource_table(); - let resource = table - .get_mut::<StreamResource>(rid) + let state = state.borrow(); + let resource = state + .resource_table + .get::<StreamResource>(rid) .ok_or_else(bad_resource)?; let tokio_file = match resource { - StreamResource::FsFile(ref mut file) => file, + StreamResource::FsFile(ref file) => file, _ => return Err(bad_resource()), }; let mut file = futures::executor::block_on(tokio_file.try_clone())?; |