about summary refs log tree commit diff
path: root/src/libcore/task.rs
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2012-07-10 08:45:08 -0700
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2012-07-10 08:45:08 -0700
commit1972ae23e528edf26dfad2090c08fbd47fa9bece (patch)
tree0d3fe80f929470632cba436bb3cf5242cce1a07f /src/libcore/task.rs
parent75db80e233ebdc84f2aaabf48ec1967ab0e622b4 (diff)
downloadrust-1972ae23e528edf26dfad2090c08fbd47fa9bece.tar.gz
rust-1972ae23e528edf26dfad2090c08fbd47fa9bece.zip
libcore: add a task::set_sched_mode fn
Diffstat (limited to 'src/libcore/task.rs')
-rw-r--r--src/libcore/task.rs28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/libcore/task.rs b/src/libcore/task.rs
index 9b75fb07a9e..608f4d449c2 100644
--- a/src/libcore/task.rs
+++ b/src/libcore/task.rs
@@ -38,6 +38,7 @@ export builder;
 export default_task_opts;
 export get_opts;
 export set_opts;
+export set_sched_mode;
 export add_wrapper;
 export run;
 
@@ -237,6 +238,16 @@ fn set_opts(builder: builder, opts: task_opts) {
     builder.opts = opts;
 }
 
+fn set_sched_mode(builder: builder, mode: sched_mode) {
+    set_opts(builder, { 
+        sched: some({
+            mode: mode,
+            foreign_stack_size: none
+        })
+        with get_opts(builder)
+    });
+}
+
 fn add_wrapper(builder: builder, gen_body: fn@(+fn~()) -> fn~()) {
     /*!
      * Add a wrapper to the body of the spawned task.
@@ -467,13 +478,7 @@ fn spawn_sched(mode: sched_mode, +f: fn~()) {
      */
 
     let mut builder = builder();
-    set_opts(builder, {
-        sched: some({
-            mode: mode,
-            foreign_stack_size: none
-        })
-        with get_opts(builder)
-    });
+    set_sched_mode(builder, mode);
     run(builder, f);
 }
 
@@ -1207,14 +1212,7 @@ fn test_avoid_copying_the_body_unsupervise() {
 #[test]
 fn test_osmain() {
     let buildr = builder();
-    let opts = {
-        sched: some({
-            mode: osmain,
-            foreign_stack_size: none
-        })
-        with get_opts(buildr)
-    };
-    set_opts(buildr, opts);
+    set_sched_mode(buildr, mode);
 
     let po = comm::port();
     let ch = comm::chan(po);