diff options
Diffstat (limited to 'cli/ops/io.rs')
-rw-r--r-- | cli/ops/io.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/cli/ops/io.rs b/cli/ops/io.rs index 610238942..8b8520c35 100644 --- a/cli/ops/io.rs +++ b/cli/ops/io.rs @@ -1,6 +1,7 @@ use super::dispatch_minimal::MinimalOp; use crate::deno_error; use crate::resources; +use crate::tokio_read; use crate::tokio_write; use deno::ErrBox; use deno::PinnedBuf; @@ -14,10 +15,11 @@ pub fn op_read(rid: i32, zero_copy: Option<PinnedBuf>) -> Box<MinimalOp> { } Some(buf) => buf, }; + match resources::lookup(rid as u32) { - None => Box::new(futures::future::err(deno_error::bad_resource())), - Some(resource) => Box::new( - tokio::io::read(resource, zero_copy) + Err(e) => Box::new(futures::future::err(e)), + Ok(resource) => Box::new( + tokio_read::read(resource, zero_copy) .map_err(ErrBox::from) .and_then(move |(_resource, _buf, nread)| Ok(nread as i32)), ), @@ -32,9 +34,10 @@ pub fn op_write(rid: i32, zero_copy: Option<PinnedBuf>) -> Box<MinimalOp> { } Some(buf) => buf, }; + match resources::lookup(rid as u32) { - None => Box::new(futures::future::err(deno_error::bad_resource())), - Some(resource) => Box::new( + Err(e) => Box::new(futures::future::err(e)), + Ok(resource) => Box::new( tokio_write::write(resource, zero_copy) .map_err(ErrBox::from) .and_then(move |(_resource, _buf, nwritten)| Ok(nwritten as i32)), |