From 51d2fefd91bbbfa8572d30f9bd4374fe53514cd9 Mon Sep 17 00:00:00 2001 From: Flavio Percoco Date: Mon, 22 Dec 2014 14:13:24 +0100 Subject: [PATCH] Implement `Sync` for some windows sys types --- src/libstd/sys/windows/mutex.rs | 2 ++ src/libstd/sys/windows/pipe.rs | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/libstd/sys/windows/mutex.rs b/src/libstd/sys/windows/mutex.rs index ddd89070ed5..3ac7c09154e 100644 --- a/src/libstd/sys/windows/mutex.rs +++ b/src/libstd/sys/windows/mutex.rs @@ -22,6 +22,8 @@ pub struct Mutex { inner: atomic::AtomicUint } pub const MUTEX_INIT: Mutex = Mutex { inner: atomic::INIT_ATOMIC_UINT }; +unsafe impl Sync for Mutex {} + #[inline] pub unsafe fn raw(m: &Mutex) -> ffi::LPCRITICAL_SECTION { m.get() diff --git a/src/libstd/sys/windows/pipe.rs b/src/libstd/sys/windows/pipe.rs index bf658d0efd0..11226f53e17 100644 --- a/src/libstd/sys/windows/pipe.rs +++ b/src/libstd/sys/windows/pipe.rs @@ -559,6 +559,8 @@ pub struct UnixListener { name: CString, } +unsafe impl Sync for UnixListener {} + impl UnixListener { pub fn bind(addr: &CString) -> IoResult { // Although we technically don't need the pipe until much later, we @@ -603,11 +605,15 @@ pub struct UnixAcceptor { deadline: u64, } +unsafe impl Sync for UnixAcceptor {} + struct AcceptorState { abort: Event, closed: atomic::AtomicBool, } +unsafe impl Sync for AcceptorState {} + impl UnixAcceptor { pub fn accept(&mut self) -> IoResult { // This function has some funky implementation details when working with