diff options
| author | bors <bors@rust-lang.org> | 2013-05-18 18:37:25 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-05-18 18:37:25 -0700 |
| commit | 3ee479f3e98474cd8125432f7a0c5c18bc2bd342 (patch) | |
| tree | b105fbefbc8b0fce8abc62152a9bd6b9af1a6abe /src/libstd/workcache.rs | |
| parent | 24c2be3323f088dc0e8024fc503198b2a535a09e (diff) | |
| parent | 8daa5ec9eac7148674cd63e5281c56925a3bc7b7 (diff) | |
| download | rust-3ee479f3e98474cd8125432f7a0c5c18bc2bd342.tar.gz rust-3ee479f3e98474cd8125432f7a0c5c18bc2bd342.zip | |
auto merge of #6577 : brson/rust/io-upstream, r=pcwalton
r? This is all of my scheduler work on #4419 from the last 3 weeks or so. I've had a few failed pull requests so far but I think the problems are ironed out. * TCP * The beginnings of runtime embedding APIs * Porting various corners of core to be compatible with both schedulers * libuv timer bindings * Further refinement of I/O error handling, including a new, incomplete, `read_error` condition * Incomplete refactoring to make tasks work without coroutines and user-space scheduling * Implementations of Reader/Writer extension methods * Implementations of the most important part of core::comm I'm particularly happy with how easy the [comm types on top of the scheduler](https://github.com/brson/rust/blob/io-upstream/src/libcore/rt/comm.rs). Note that these implementations do not use pipes. If anything here needs careful review though it's this code. This branch passes 95% of the run-pass tests (with `TESTARGS=--newrt`) In the next week I'll probably spend some time adding preliminary multithreading and seeing how close we are to removing the old runtime.
Diffstat (limited to 'src/libstd/workcache.rs')
| -rw-r--r-- | src/libstd/workcache.rs | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/libstd/workcache.rs b/src/libstd/workcache.rs index f173df60df8..3889650d012 100644 --- a/src/libstd/workcache.rs +++ b/src/libstd/workcache.rs @@ -15,11 +15,10 @@ use sort; use core::cell::Cell; use core::cmp; -use core::comm::{PortOne, oneshot, send_one}; +use core::comm::{PortOne, oneshot, send_one, recv_one}; use core::either::{Either, Left, Right}; use core::hashmap::HashMap; use core::io; -use core::pipes::recv; use core::run; use core::to_bytes; use core::util::replace; @@ -389,9 +388,7 @@ fn unwrap<T:Owned + None => fail!(), Some(Left(v)) => v, Some(Right(port)) => { - let (exe, v) = match recv(port.unwrap()) { - oneshot::send(data) => data - }; + let (exe, v) = recv_one(port); let s = json_encode(&v); |
