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 { // 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 { // This function has some funky implementation details when working with