From f5d619caf9f32458680fae55526b99582ca682dd Mon Sep 17 00:00:00 2001 From: Flavio Percoco Date: Fri, 26 Dec 2014 23:01:47 +0100 Subject: [PATCH] Implement Sync/Send for windows TCP types --- src/libstd/sys/windows/tcp.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/libstd/sys/windows/tcp.rs b/src/libstd/sys/windows/tcp.rs index 505e6137bf90..513c1d38e363 100644 --- a/src/libstd/sys/windows/tcp.rs +++ b/src/libstd/sys/windows/tcp.rs @@ -24,6 +24,9 @@ pub use sys_common::net::TcpStream; pub struct Event(c::WSAEVENT); +unsafe impl Send for Event {} +unsafe impl Sync for Event {} + impl Event { pub fn new() -> IoResult { let event = unsafe { c::WSACreateEvent() }; @@ -49,6 +52,9 @@ impl Drop for Event { pub struct TcpListener { sock: sock_t } +unsafe impl Send for TcpListener {} +unsafe impl Sync for TcpListener {} + impl TcpListener { pub fn bind(addr: ip::SocketAddr) -> IoResult { sys::init_net(); @@ -109,6 +115,9 @@ pub struct TcpAcceptor { deadline: u64, } +unsafe impl Send for TcpAcceptor {} +unsafe impl Sync for TcpAcceptor {} + struct AcceptorInner { listener: TcpListener, abort: Event, @@ -116,6 +125,9 @@ struct AcceptorInner { closed: atomic::AtomicBool, } +unsafe impl Send for AcceptorInner {} +unsafe impl Sync for AcceptorInner {} + impl TcpAcceptor { pub fn socket(&self) -> sock_t { self.inner.listener.socket() }