diff options
| author | Ben Blum <bblum@andrew.cmu.edu> | 2012-07-23 19:53:22 -0400 |
|---|---|---|
| committer | Ben Blum <bblum@andrew.cmu.edu> | 2012-07-23 20:09:17 -0400 |
| commit | e0e9e451e7b102f53bd9d86b638d9c5d7fae3cc8 (patch) | |
| tree | 549360b7f2f9e428c12c64e2cd7ee2bae967cb86 /src/libstd | |
| parent | c7a6a66e4b8c26d25f3eb28010e71ba61aa086b5 (diff) | |
Convert os/priv/uv to new task_builder interface
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/uv_global_loop.rs | 11 | ||||
| -rw-r--r-- | src/libstd/uv_iotask.rs | 7 |
2 files changed, 7 insertions, 11 deletions
diff --git a/src/libstd/uv_global_loop.rs b/src/libstd/uv_global_loop.rs index 4a7962a977f..08096135952 100644 --- a/src/libstd/uv_global_loop.rs +++ b/src/libstd/uv_global_loop.rs @@ -8,6 +8,7 @@ import get_gl = get; import iotask::{iotask, spawn_iotask}; import priv::{chan_from_global_ptr, weaken_task}; import comm::{port, chan, methods, select2, listen}; +import task::task_builder; import either::{left, right}; extern mod rustrt { @@ -39,10 +40,7 @@ fn get_monitor_task_gl() -> iotask unsafe { monitor_loop_chan_ptr); let builder_fn = || { - let builder = task::builder(); - task::unsupervise(builder); - task::set_sched_mode(builder, task::single_threaded); - builder + task::task().sched_mode(task::single_threaded).unlinked() }; #debug("before priv::chan_from_global_ptr"); @@ -86,8 +84,7 @@ fn get_monitor_task_gl() -> iotask unsafe { } fn spawn_loop() -> iotask unsafe { - let builder = task::builder(); - do task::add_wrapper(builder) |task_body| { + let builder = do task::task().add_wrapper |task_body| { fn~(move task_body) { // The I/O loop task also needs to be weak so it doesn't keep // the runtime alive @@ -102,7 +99,7 @@ fn spawn_loop() -> iotask unsafe { #debug("global libuv task is leaving weakened state"); } } - } + }; spawn_iotask(builder) } diff --git a/src/libstd/uv_iotask.rs b/src/libstd/uv_iotask.rs index d049c6f7c7b..5566c0c8f0f 100644 --- a/src/libstd/uv_iotask.rs +++ b/src/libstd/uv_iotask.rs @@ -13,6 +13,7 @@ export exit; import libc::c_void; import ptr::addr_of; import comm::{port, chan, methods, listen}; +import task::task_builder; import ll = uv_ll; /// Used to abstract-away direct interaction with a libuv loop. @@ -23,13 +24,11 @@ enum iotask { }) } -fn spawn_iotask(-builder: task::builder) -> iotask { - - task::set_sched_mode(builder, task::single_threaded); +fn spawn_iotask(-task: task::task_builder) -> iotask { do listen |iotask_ch| { - do task::run(copy(builder)) { + do task.sched_mode(task::single_threaded).spawn { #debug("entering libuv task"); run_loop(iotask_ch); #debug("libuv task exiting"); |
