diff options
Diffstat (limited to 'runtime/ops/io.rs')
-rw-r--r-- | runtime/ops/io.rs | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/runtime/ops/io.rs b/runtime/ops/io.rs index 78263ce28..bef33e9fa 100644 --- a/runtime/ops/io.rs +++ b/runtime/ops/io.rs @@ -42,26 +42,35 @@ use { // alive for the duration of the application since the last handle/fd // being dropped will close the corresponding pipe. #[cfg(unix)] -static STDIN_HANDLE: Lazy<StdFile> = - Lazy::new(|| unsafe { StdFile::from_raw_fd(0) }); +static STDIN_HANDLE: Lazy<StdFile> = Lazy::new(|| { + // SAFETY: corresponds to OS stdin + unsafe { StdFile::from_raw_fd(0) } +}); #[cfg(unix)] -static STDOUT_HANDLE: Lazy<StdFile> = - Lazy::new(|| unsafe { StdFile::from_raw_fd(1) }); +static STDOUT_HANDLE: Lazy<StdFile> = Lazy::new(|| { + // SAFETY: corresponds to OS stdout + unsafe { StdFile::from_raw_fd(1) } +}); #[cfg(unix)] -static STDERR_HANDLE: Lazy<StdFile> = - Lazy::new(|| unsafe { StdFile::from_raw_fd(2) }); +static STDERR_HANDLE: Lazy<StdFile> = Lazy::new(|| { + // SAFETY: corresponds to OS stderr + unsafe { StdFile::from_raw_fd(2) } +}); #[cfg(windows)] -static STDIN_HANDLE: Lazy<StdFile> = Lazy::new(|| unsafe { - StdFile::from_raw_handle(GetStdHandle(winbase::STD_INPUT_HANDLE)) +static STDIN_HANDLE: Lazy<StdFile> = Lazy::new(|| { + // SAFETY: corresponds to OS stdin + unsafe { StdFile::from_raw_handle(GetStdHandle(winbase::STD_INPUT_HANDLE)) } }); #[cfg(windows)] -static STDOUT_HANDLE: Lazy<StdFile> = Lazy::new(|| unsafe { - StdFile::from_raw_handle(GetStdHandle(winbase::STD_OUTPUT_HANDLE)) +static STDOUT_HANDLE: Lazy<StdFile> = Lazy::new(|| { + // SAFETY: corresponds to OS stdout + unsafe { StdFile::from_raw_handle(GetStdHandle(winbase::STD_OUTPUT_HANDLE)) } }); #[cfg(windows)] -static STDERR_HANDLE: Lazy<StdFile> = Lazy::new(|| unsafe { - StdFile::from_raw_handle(GetStdHandle(winbase::STD_ERROR_HANDLE)) +static STDERR_HANDLE: Lazy<StdFile> = Lazy::new(|| { + // SAFETY: corresponds to OS stderr + unsafe { StdFile::from_raw_handle(GetStdHandle(winbase::STD_ERROR_HANDLE)) } }); pub fn init() -> Extension { |