From 20bb5976367883b43d5d07c2bcc33d68dab25cd7 Mon Sep 17 00:00:00 2001 From: Zach Reizner Date: Tue, 9 Jan 2018 15:01:36 -0800 Subject: [PATCH] sys_util: implement FromRawFd for EventFd This is used to make EventFd passed over unix domain socket, such as by the plugin API. TEST=./build_test BUG=chromium:800626 Change-Id: Ifd6c81c51b31a376d57a007bf413a836f3af870a Reviewed-on: https://chromium-review.googlesource.com/857906 Commit-Ready: Zach Reizner Tested-by: Zach Reizner Reviewed-by: Stephen Barber Reviewed-by: Dylan Reid --- sys_util/src/eventfd.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys_util/src/eventfd.rs b/sys_util/src/eventfd.rs index 9298a05582..ffdfadbcbb 100644 --- a/sys_util/src/eventfd.rs +++ b/sys_util/src/eventfd.rs @@ -83,6 +83,14 @@ impl AsRawFd for EventFd { } } +impl FromRawFd for EventFd { + unsafe fn from_raw_fd(fd: RawFd) -> Self { + EventFd { + eventfd: File::from_raw_fd(fd) + } + } +} + unsafe impl ::Pollable for EventFd { fn pollable_fd(&self) -> RawFd { self.eventfd.as_raw_fd()