fix(wasi): enable all WasiFiles to be pollable (#3913)
Currently, the use of the downcast method means that you have to use one of the hard-coded types. But Enarx needs to define its own `WasiFile` implementations. This works fine, except the resulting files cannot be used in poll because they aren't part of the hard-coded list. Replace this with an accessor method for the pollable type in `WasiFile`. Because we provide a default implementation of the method and manually implement it on all the hard-coded types, this is backwards compatible. Signed-off-by: Nathaniel McCallum <nathaniel@profian.com>
This commit is contained in:
committed by
GitHub
parent
13b9396931
commit
0df4e961c0
@@ -7,6 +7,16 @@ pub trait WasiFile: Send + Sync {
|
||||
fn as_any(&self) -> &dyn Any;
|
||||
async fn get_filetype(&mut self) -> Result<FileType, Error>;
|
||||
|
||||
#[cfg(unix)]
|
||||
fn pollable(&self) -> Option<rustix::fd::BorrowedFd> {
|
||||
None
|
||||
}
|
||||
|
||||
#[cfg(windows)]
|
||||
fn pollable(&self) -> Option<io_extras::os::windows::RawHandleOrSocket> {
|
||||
None
|
||||
}
|
||||
|
||||
fn isatty(&mut self) -> bool {
|
||||
false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user