diff options
| author | Flavio Percoco <flaper87@gmail.com> | 2015-01-25 23:54:09 +0100 |
|---|---|---|
| committer | Flavio Percoco <flaper87@gmail.com> | 2015-01-26 09:12:26 +0100 |
| commit | fff5600925cf3bbee2befd6957b727016765ebd0 (patch) | |
| tree | e5278f8e4351e1eea3bae743d6690c3ef88240c4 /src | |
| parent | c80e556e159af38f86eea5ee2ba796d7c724c92b (diff) | |
| download | rust-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')
| -rw-r--r-- | src/libstd/sys/windows/pipe.rs | 15 |
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 |
