rewrite wasi-tokio as just an task::block_in_place wrapper on cap-std-sync
This commit is contained in:
@@ -7,7 +7,7 @@ use std::ops::Deref;
|
||||
use std::path::PathBuf;
|
||||
|
||||
#[wiggle::async_trait]
|
||||
pub trait WasiDir {
|
||||
pub trait WasiDir: Send + Sync {
|
||||
fn as_any(&self) -> &dyn Any;
|
||||
async fn open_file(
|
||||
&self,
|
||||
@@ -24,7 +24,7 @@ pub trait WasiDir {
|
||||
async fn readdir(
|
||||
&self,
|
||||
cursor: ReaddirCursor,
|
||||
) -> Result<Box<dyn Iterator<Item = Result<ReaddirEntity, Error>>>, Error>;
|
||||
) -> Result<Box<dyn Iterator<Item = Result<ReaddirEntity, Error>> + Send>, Error>;
|
||||
async fn symlink(&self, old_path: &str, new_path: &str) -> Result<(), Error>;
|
||||
async fn remove_dir(&self, path: &str) -> Result<(), Error>;
|
||||
async fn unlink_file(&self, path: &str) -> Result<(), Error>;
|
||||
|
||||
@@ -5,7 +5,7 @@ use std::cell::{Ref, RefMut};
|
||||
use std::ops::{Deref, DerefMut};
|
||||
|
||||
#[wiggle::async_trait]
|
||||
pub trait WasiFile {
|
||||
pub trait WasiFile: Send {
|
||||
fn as_any(&self) -> &dyn Any;
|
||||
async fn datasync(&self) -> Result<(), Error>; // write op
|
||||
async fn sync(&self) -> Result<(), Error>; // file op
|
||||
|
||||
@@ -106,7 +106,7 @@ impl From<&str> for ReadPipe<io::Cursor<String>> {
|
||||
}
|
||||
|
||||
#[wiggle::async_trait]
|
||||
impl<R: Read + Any> WasiFile for ReadPipe<R> {
|
||||
impl<R: Read + Any + Send + Sync> WasiFile for ReadPipe<R> {
|
||||
fn as_any(&self) -> &dyn Any {
|
||||
self
|
||||
}
|
||||
@@ -265,7 +265,7 @@ impl WritePipe<io::Cursor<Vec<u8>>> {
|
||||
}
|
||||
|
||||
#[wiggle::async_trait]
|
||||
impl<W: Write + Any> WasiFile for WritePipe<W> {
|
||||
impl<W: Write + Any + Send + Sync> WasiFile for WritePipe<W> {
|
||||
fn as_any(&self) -> &dyn Any {
|
||||
self
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user