diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-07-27 12:05:15 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-07-30 14:23:44 -0700 |
| commit | 0144c83213cb5ce43df61f149274379f49b6d7cb (patch) | |
| tree | aa4a8117325521e49c07bb1e5a679bad6f9827db /src/libstd/rt/uv | |
| parent | 7265cc6530b242f9590a3207f2bfdf9a5425a32c (diff) | |
std::rt: Change Thread interface to require an explicit join
Makes it more obvious what's going on
Diffstat (limited to 'src/libstd/rt/uv')
| -rw-r--r-- | src/libstd/rt/uv/async.rs | 3 | ||||
| -rw-r--r-- | src/libstd/rt/uv/net.rs | 12 | ||||
| -rw-r--r-- | src/libstd/rt/uv/uvio.rs | 3 |
3 files changed, 12 insertions, 6 deletions
diff --git a/src/libstd/rt/uv/async.rs b/src/libstd/rt/uv/async.rs index 47e0a240e45..d0ca38317cb 100644 --- a/src/libstd/rt/uv/async.rs +++ b/src/libstd/rt/uv/async.rs @@ -94,12 +94,13 @@ mod test { let mut loop_ = Loop::new(); let watcher = AsyncWatcher::new(&mut loop_, |w, _| w.close(||()) ); let watcher_cell = Cell::new(watcher); - let _thread = do Thread::start { + let thread = do Thread::start { let mut watcher = watcher_cell.take(); watcher.send(); }; loop_.run(); loop_.close(); + thread.join(); } } } diff --git a/src/libstd/rt/uv/net.rs b/src/libstd/rt/uv/net.rs index a039f3ab7ed..8ea4a197269 100644 --- a/src/libstd/rt/uv/net.rs +++ b/src/libstd/rt/uv/net.rs @@ -715,7 +715,7 @@ mod test { } } - let _client_thread = do Thread::start { + let client_thread = do Thread::start { rtdebug!("starting client thread"); let mut loop_ = Loop::new(); let mut tcp_watcher = { TcpWatcher::new(&mut loop_) }; @@ -739,6 +739,7 @@ mod test { let mut loop_ = loop_; loop_.run(); loop_.close(); + client_thread.join(); } } @@ -790,7 +791,7 @@ mod test { } } - let _client_thread = do Thread::start { + let client_thread = do Thread::start { rtdebug!("starting client thread"); let mut loop_ = Loop::new(); let mut tcp_watcher = { TcpWatcher::new(&mut loop_) }; @@ -814,6 +815,7 @@ mod test { let mut loop_ = loop_; loop_.run(); loop_.close(); + client_thread.join(); } } @@ -855,7 +857,7 @@ mod test { server.close(||{}); } - do Thread::start { + let thread = do Thread::start { let mut loop_ = Loop::new(); let mut client = UdpWatcher::new(&loop_); assert!(client.bind(client_addr).is_ok()); @@ -873,6 +875,7 @@ mod test { loop_.run(); loop_.close(); + thread.join(); } } @@ -914,7 +917,7 @@ mod test { server.close(||{}); } - do Thread::start { + let thread = do Thread::start { let mut loop_ = Loop::new(); let mut client = UdpWatcher::new(&loop_); assert!(client.bind(client_addr).is_ok()); @@ -932,6 +935,7 @@ mod test { loop_.run(); loop_.close(); + thread.join(); } } } diff --git a/src/libstd/rt/uv/uvio.rs b/src/libstd/rt/uv/uvio.rs index 5397b5f2c5c..53ccd20186d 100644 --- a/src/libstd/rt/uv/uvio.rs +++ b/src/libstd/rt/uv/uvio.rs @@ -222,11 +222,12 @@ mod test_remote { }; remote_cell.put_back(remote); } - let _thread = do Thread::start { + let thread = do Thread::start { remote_cell.take().fire(); }; assert!(tube.recv() == 1); + thread.join(); } } } |
