summaryrefslogtreecommitdiffstats
path: root/crates/runner/src/util/unix.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/runner/src/util/unix.rs')
-rw-r--r--crates/runner/src/util/unix.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/crates/runner/src/util/unix.rs b/crates/runner/src/util/unix.rs
index 710138c..c3e9ddb 100644
--- a/crates/runner/src/util/unix.rs
+++ b/crates/runner/src/util/unix.rs
@@ -11,9 +11,8 @@ use common::error::*;
use super::fs;
pub fn set_blocking(fd: RawFd, blocking: bool) -> Result<()> {
- let flags = unsafe {
- OFlag::from_bits_unchecked(fcntl::fcntl(fd, FcntlArg::F_GETFL).context("fcntl(F_GETFL)")?)
- };
+ let flags =
+ OFlag::from_bits_retain(fcntl::fcntl(fd, FcntlArg::F_GETFL).context("fcntl(F_GETFL)")?);
let new_flags = if blocking {
flags & !OFlag::O_NONBLOCK
@@ -29,9 +28,8 @@ pub fn set_blocking(fd: RawFd, blocking: bool) -> Result<()> {
}
pub fn set_cloexec(fd: RawFd, cloexec: bool) -> Result<()> {
- let flags = unsafe {
- FdFlag::from_bits_unchecked(fcntl::fcntl(fd, FcntlArg::F_GETFD).context("fcntl(F_GETFD)")?)
- };
+ let flags =
+ FdFlag::from_bits_retain(fcntl::fcntl(fd, FcntlArg::F_GETFD).context("fcntl(F_GETFD)")?);
let new_flags = if cloexec {
flags | FdFlag::FD_CLOEXEC