From acacfb20fd34162cfba5a4e7b5f1447e0403fa50 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 27 Jan 2014 22:41:25 -0800 Subject: Various bug fixes and rebase conflicts --- src/libnative/io/net.rs | 19 +++++++++---------- src/libnative/io/timer_helper.rs | 12 ++++++++---- 2 files changed, 17 insertions(+), 14 deletions(-) (limited to 'src/libnative') diff --git a/src/libnative/io/net.rs b/src/libnative/io/net.rs index cf0b1f05ebd..dd916c8f3c4 100644 --- a/src/libnative/io/net.rs +++ b/src/libnative/io/net.rs @@ -204,17 +204,16 @@ pub fn init() { use std::unstable::mutex::{Mutex, MUTEX_INIT}; static mut INITIALIZED: bool = false; static mut LOCK: Mutex = MUTEX_INIT; - unsafe { - LOCK.lock(); - if !INITIALIZED { - let mut data: WSADATA = intrinsics::init(); - let ret = WSAStartup(0x202, // version 2.2 - &mut data); - assert_eq!(ret, 0); - INITIALIZED = true; - } - LOCK.unlock(); + + LOCK.lock(); + if !INITIALIZED { + let mut data: WSADATA = intrinsics::init(); + let ret = WSAStartup(0x202, // version 2.2 + &mut data); + assert_eq!(ret, 0); + INITIALIZED = true; } + LOCK.unlock(); } } diff --git a/src/libnative/io/timer_helper.rs b/src/libnative/io/timer_helper.rs index 7311be46e8b..c00b0efadb5 100644 --- a/src/libnative/io/timer_helper.rs +++ b/src/libnative/io/timer_helper.rs @@ -22,7 +22,7 @@ use std::cast; use std::rt; -use std::unstable::mutex::{Once, ONCE_INIT}; +use std::unstable::mutex::{Mutex, MUTEX_INIT}; use bookkeeping; use io::timer::{Req, Shutdown}; @@ -37,10 +37,12 @@ static mut HELPER_CHAN: *mut SharedChan = 0 as *mut SharedChan; static mut HELPER_SIGNAL: imp::signal = 0 as imp::signal; pub fn boot(helper: fn(imp::signal, Port)) { - static mut INIT: Once = ONCE_INIT; + static mut LOCK: Mutex = MUTEX_INIT; + static mut INITIALIZED: bool = false; unsafe { - INIT.doit(|| { + LOCK.lock(); + if !INITIALIZED { let (msgp, msgc) = SharedChan::new(); HELPER_CHAN = cast::transmute(~msgc); let (receive, send) = imp::new(); @@ -52,7 +54,9 @@ pub fn boot(helper: fn(imp::signal, Port)) { }); rt::at_exit(proc() { shutdown() }); - }) + INITIALIZED = true; + } + LOCK.unlock(); } } -- cgit 1.4.1-3-g733a5