-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Description
I was going to try to implement I/O safety types on the handles as per sunfishcode/io-lifetimes#38, but then I realized that ChildStdin, ChildStdout and ChildStderr don't implement AsRawFd at all.
I believe that this is due to the fact that Unblock is used to wrap the inner std type, which makes it difficult to access the methods of the inner type. I see three possible ways to resolve this:
- On Windows, wrap
ChildStd*in anArcthat is stored in the structure as well as theUnblock, so that methods on the inner type can be accessed more easily. - Make it easier to access the inner file descriptor for
Unblocktypes. We could potentially implementAsRawHandleonUnblock<T: AsRawHandle>that panics if the inner type is not accessible, or maybe some kind ofget_ref(&self) -> Option<&T>general purpose method. - Implement
AsRawFdonunix, since it is easy to get the inner type viaasync_io::Async, but don't implement the corresponding types on Windows.
Metadata
Metadata
Assignees
Labels
No labels