diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-11-13 23:14:48 -0500 |
---|---|---|
committer | Ry Dahl <ry@tinyclouds.org> | 2019-11-13 23:42:35 -0500 |
commit | fdf0ede2acd110ba04857d5674db19c908b3ff32 (patch) | |
tree | 880252cadf6dd5024fe4d32dca7ab903af55e713 /cli/ops/files.rs | |
parent | fd62379eafde6571f126df5650b80cfda9f74229 (diff) |
Revert "refactor: per-worker resource table (#3306)"
This patch does not work with the recent bundler changes (#3325).
Unfortunately I didn't merge master before landing this patch. It has
something to do with console.log not working inside the compiler worker.
This reverts commit fd62379eafde6571f126df5650b80cfda9f74229.
Diffstat (limited to 'cli/ops/files.rs')
-rw-r--r-- | cli/ops/files.rs | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/cli/ops/files.rs b/cli/ops/files.rs index fc1b8e7d8..04b5f98bf 100644 --- a/cli/ops/files.rs +++ b/cli/ops/files.rs @@ -1,11 +1,12 @@ // Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. use super::dispatch_json::{Deserialize, JsonOp, Value}; -use super::io::StreamResource; use crate::deno_error::bad_resource; use crate::deno_error::DenoError; use crate::deno_error::ErrorKind; use crate::fs as deno_fs; use crate::ops::json_op; +use crate::resources; +use crate::resources::CliResource; use crate::state::ThreadSafeState; use deno::*; use futures::Future; @@ -37,7 +38,7 @@ fn op_open( let args: OpenArgs = serde_json::from_value(args)?; let (filename, filename_) = deno_fs::resolve_from_cwd(&args.filename)?; let mode = args.mode.as_ref(); - let state_ = state.clone(); + let mut open_options = tokio::fs::OpenOptions::new(); match mode { @@ -90,8 +91,7 @@ fn op_open( let is_sync = args.promise_id.is_none(); let op = open_options.open(filename).map_err(ErrBox::from).and_then( move |fs_file| { - let mut table = state_.lock_resource_table(); - let rid = table.add("fsFile", Box::new(StreamResource::FsFile(fs_file))); + let rid = resources::add_fs_file(fs_file); futures::future::ok(json!(rid)) }, ); @@ -110,21 +110,21 @@ struct CloseArgs { } fn op_close( - state: &ThreadSafeState, + _state: &ThreadSafeState, args: Value, _zero_copy: Option<PinnedBuf>, ) -> Result<JsonOp, ErrBox> { let args: CloseArgs = serde_json::from_value(args)?; - let mut table = state.lock_resource_table(); + let mut table = resources::lock_resource_table(); table.close(args.rid as u32).ok_or_else(bad_resource)?; Ok(JsonOp::Sync(json!({}))) } +#[derive(Debug)] pub struct SeekFuture { seek_from: SeekFrom, rid: ResourceId, - state: ThreadSafeState, } impl Future for SeekFuture { @@ -132,13 +132,13 @@ impl Future for SeekFuture { type Error = ErrBox; fn poll(&mut self) -> Poll<Self::Item, Self::Error> { - let mut table = self.state.lock_resource_table(); + let mut table = resources::lock_resource_table(); let resource = table - .get_mut::<StreamResource>(self.rid) + .get_mut::<CliResource>(self.rid) .ok_or_else(bad_resource)?; let tokio_file = match resource { - StreamResource::FsFile(ref mut file) => file, + CliResource::FsFile(ref mut file) => file, _ => return Err(bad_resource()), }; @@ -156,7 +156,7 @@ struct SeekArgs { } fn op_seek( - state: &ThreadSafeState, + _state: &ThreadSafeState, args: Value, _zero_copy: Option<PinnedBuf>, ) -> Result<JsonOp, ErrBox> { @@ -177,11 +177,7 @@ fn op_seek( } }; - let fut = SeekFuture { - state: state.clone(), - seek_from, - rid, - }; + let fut = SeekFuture { seek_from, rid }; let op = fut.and_then(move |_| futures::future::ok(json!({}))); if args.promise_id.is_none() { |