From 76bd1c4c102cb7e753212a9a30dd651a184a0a15 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Sun, 23 Oct 2016 18:28:35 -0600 Subject: [PATCH 1/2] impl Send for KEvent --- src/sys/event.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/sys/event.rs b/src/sys/event.rs index d44963db03..47d1838968 100644 --- a/src/sys/event.rs +++ b/src/sys/event.rs @@ -191,6 +191,15 @@ pub fn kqueue() -> Result { 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 { From a0058f0308a1a891ea13e70d3918a49ddd53a2b4 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Sat, 29 Oct 2016 19:04:56 -0600 Subject: [PATCH 2/2] Update comments and CHANGELOG for PR 442 --- CHANGELOG.md | 2 ++ src/sys/event.rs | 8 +++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8ae74ca31..c87b045eac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,8 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Changed - The minimum supported version of rustc is now 1.7.0. ([#444](https://github.com/nix-rust/nix/pull/444)) +- Implement `Send` for `KEvent` + ([#442](https://github.com/nix-rust/nix/pull/442)) - Changed `KEvent` to an opaque structure that may only be modified by its constructor and the `ev_set` method. ([#415](https://github.com/nix-rust/nix/pull/415)) diff --git a/src/sys/event.rs b/src/sys/event.rs index 47d1838968..68528c9ecc 100644 --- a/src/sys/event.rs +++ b/src/sys/event.rs @@ -192,11 +192,9 @@ pub fn kqueue() -> Result { } -/* - * 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. - */ +// 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 { }