summaryrefslogtreecommitdiff
path: root/src/sys/event.rs
diff options
context:
space:
mode:
authorHomu <homu@barosl.com>2016-10-30 11:31:30 +0900
committerHomu <homu@barosl.com>2016-10-30 11:31:30 +0900
commit652e730f106fd3c103ba7549e64a7c992a72f11a (patch)
tree152d6c259da5b6d3aeab84c0689ebe03bb082774 /src/sys/event.rs
parentff4484d343dbd8f224d767b4499cc502c4c7f016 (diff)
parenta0058f0308a1a891ea13e70d3918a49ddd53a2b4 (diff)
downloadnix-652e730f106fd3c103ba7549e64a7c992a72f11a.zip
Auto merge of #453 - nix-rust:asomers-kevent, r=posborne
Asomers kevent This is a rebase of @asomers work on master to resolve a merge conflict so we can get things merged up.
Diffstat (limited to 'src/sys/event.rs')
-rw-r--r--src/sys/event.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/sys/event.rs b/src/sys/event.rs
index d44963db..68528c9e 100644
--- a/src/sys/event.rs
+++ b/src/sys/event.rs
@@ -191,6 +191,13 @@ pub fn kqueue() -> Result<RawFd> {
Errno::result(res)
}
+
+// KEvent can't derive Send because on some operating systems, udata is defined
+// as a void*. However, KEvent's public API always treats udata as a uintptr_t,
+// which is safe to Send.
+unsafe impl Send for KEvent {
+}
+
impl KEvent {
pub fn new(ident: uintptr_t, filter: EventFilter, flags: EventFlag,
fflags:FilterFlag, data: intptr_t, udata: uintptr_t) -> KEvent {