about summary refs log tree commit diff
path: root/src/libstd/sys
diff options
context:
space:
mode:
authorFlavio Percoco <flaper87@gmail.com>2015-01-25 23:54:09 +0100
committerFlavio Percoco <flaper87@gmail.com>2015-01-26 09:12:26 +0100
commitfff5600925cf3bbee2befd6957b727016765ebd0 (patch)
treee5278f8e4351e1eea3bae743d6690c3ef88240c4 /src/libstd/sys
parentc80e556e159af38f86eea5ee2ba796d7c724c92b (diff)
downloadrust-fff5600925cf3bbee2befd6957b727016765ebd0.tar.gz
rust-fff5600925cf3bbee2befd6957b727016765ebd0.zip
Make Unix and Windows impls consistent
There are some explicit Send/Sync implementations for Window's types
that don't exist in Unix. While the end result will be the same, I
believe it's clearer if we keep the explicit implementations consistent
by making the os-specific types Send/Sync where needed and possible.

This commit addresses pipe

src/libstd/sys/unix/pipe.rs
unsafe impl Send for UnixListener {}
unsafe impl Sync for UnixListener {}

src/libstd/sys/windows/pipe.rs
unsafe impl Send for UnixStream {}
unsafe impl Sync for UnixStream {}
unsafe impl Send for UnixListener {}
unsafe impl Sync for UnixListener {}
unsafe impl Send for UnixAcceptor {}
unsafe impl Sync for UnixAcceptor {}
unsafe impl Send for AcceptorState {}
unsafe impl Sync for AcceptorState {}
Diffstat (limited to 'src/libstd/sys')
-rw-r--r--src/libstd/sys/windows/pipe.rs15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/libstd/sys/windows/pipe.rs b/src/libstd/sys/windows/pipe.rs
index 9996909f2f5..ef511d13199 100644
--- a/src/libstd/sys/windows/pipe.rs
+++ b/src/libstd/sys/windows/pipe.rs
@@ -129,6 +129,9 @@ impl Drop for Event {
     }
 }
 
+unsafe impl Send for Event {}
+unsafe impl Sync for Event {}
+
 struct Inner {
     handle: libc::HANDLE,
     lock: Mutex<()>,
@@ -156,6 +159,9 @@ impl Drop for Inner {
     }
 }
 
+unsafe impl Send for Inner {}
+unsafe impl Sync for Inner {}
+
 unsafe fn pipe(name: *const u16, init: bool) -> libc::HANDLE {
     libc::CreateNamedPipeW(
         name,
@@ -220,9 +226,6 @@ pub struct UnixStream {
     write_deadline: u64,
 }
 
-unsafe impl Send for UnixStream {}
-unsafe impl Sync for UnixStream {}
-
 impl UnixStream {
     fn try_connect(p: *const u16) -> Option<libc::HANDLE> {
         // Note that most of this is lifted from the libuv implementation.
@@ -615,17 +618,11 @@ pub struct UnixAcceptor {
     deadline: u64,
 }
 
-unsafe impl Send for UnixAcceptor {}
-unsafe impl Sync for UnixAcceptor {}
-
 struct AcceptorState {
     abort: Event,
     closed: AtomicBool,
 }
 
-unsafe impl Send for AcceptorState {}
-unsafe impl Sync for AcceptorState {}
-
 impl UnixAcceptor {
     pub fn accept(&mut self) -> IoResult<UnixStream> {
         // This function has some funky implementation details when working with