diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2012-07-10 08:45:08 -0700 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2012-07-10 08:45:08 -0700 |
| commit | 1972ae23e528edf26dfad2090c08fbd47fa9bece (patch) | |
| tree | 0d3fe80f929470632cba436bb3cf5242cce1a07f /src/libcore | |
| parent | 75db80e233ebdc84f2aaabf48ec1967ab0e622b4 (diff) | |
| download | rust-1972ae23e528edf26dfad2090c08fbd47fa9bece.tar.gz rust-1972ae23e528edf26dfad2090c08fbd47fa9bece.zip | |
libcore: add a task::set_sched_mode fn
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/os.rs | 14 | ||||
| -rw-r--r-- | src/libcore/task.rs | 28 |
2 files changed, 18 insertions, 24 deletions
diff --git a/src/libcore/os.rs b/src/libcore/os.rs index 808552fca6c..c1b7574c9cc 100644 --- a/src/libcore/os.rs +++ b/src/libcore/os.rs @@ -163,15 +163,11 @@ mod global_env { let builder_fn = || { let builder = task::builder(); task::unsupervise(builder); - task::set_opts(builder, { - sched: some({ - mode: task::single_threaded, - // FIXME (#2621): This would be a good place to use a - // very small foreign stack - foreign_stack_size: none - }) - with task::get_opts(builder) - }); + + // FIXME (#2621): This would be a good place to use a very small + // foreign stack + task::set_sched_mode(builder, task::single_threaded); + builder }; unsafe { 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); |
