summaryrefslogtreecommitdiff
path: root/src/sys/eventfd.rs
diff options
context:
space:
mode:
authorSteve Lau <stevelauc@outlook.com>2022-12-11 12:19:58 +0800
committerSteve Lau <stevelauc@outlook.com>2022-12-11 12:19:58 +0800
commit27d1844952386a52f190935f8fde1cc967f1e01f (patch)
treeee9b3ce6afcad38bf99ef8913e036ef6cbaa1f26 /src/sys/eventfd.rs
parentdf5877c46a2b2d1aad6069b8ab8c9d1961a1650b (diff)
downloadnix-27d1844952386a52f190935f8fde1cc967f1e01f.zip
feat: I/O safety for 'sys/memfd' & 'sys/event' & 'sys/eventfd'
Diffstat (limited to 'src/sys/eventfd.rs')
-rw-r--r--src/sys/eventfd.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/sys/eventfd.rs b/src/sys/eventfd.rs
index cd906720..f1723519 100644
--- a/src/sys/eventfd.rs
+++ b/src/sys/eventfd.rs
@@ -1,6 +1,6 @@
use crate::errno::Errno;
use crate::Result;
-use std::os::unix::io::RawFd;
+use std::os::unix::io::{FromRawFd, OwnedFd};
libc_bitflags! {
pub struct EfdFlags: libc::c_int {
@@ -10,8 +10,8 @@ libc_bitflags! {
}
}
-pub fn eventfd(initval: libc::c_uint, flags: EfdFlags) -> Result<RawFd> {
+pub fn eventfd(initval: libc::c_uint, flags: EfdFlags) -> Result<OwnedFd> {
let res = unsafe { libc::eventfd(initval, flags.bits()) };
- Errno::result(res).map(|r| r as RawFd)
+ Errno::result(res).map(|r| unsafe { OwnedFd::from_raw_fd(r) })
}