Skip to content

Commit b3b02cd

Browse files
committed
Merge pull request #2860 from erickt/incoming
Add a task::set_sched_mode function
2 parents 84da9de + 1972ae2 commit b3b02cd

File tree

4 files changed

+21
-42
lines changed

4 files changed

+21
-42
lines changed

src/libcore/os.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -163,15 +163,11 @@ mod global_env {
163163
let builder_fn = || {
164164
let builder = task::builder();
165165
task::unsupervise(builder);
166-
task::set_opts(builder, {
167-
sched: some({
168-
mode: task::single_threaded,
169-
// FIXME (#2621): This would be a good place to use a
170-
// very small foreign stack
171-
foreign_stack_size: none
172-
})
173-
with task::get_opts(builder)
174-
});
166+
167+
// FIXME (#2621): This would be a good place to use a very small
168+
// foreign stack
169+
task::set_sched_mode(builder, task::single_threaded);
170+
175171
builder
176172
};
177173
unsafe {

src/libcore/task.rs

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export builder;
3838
export default_task_opts;
3939
export get_opts;
4040
export set_opts;
41+
export set_sched_mode;
4142
export add_wrapper;
4243
export run;
4344

@@ -237,6 +238,16 @@ fn set_opts(builder: builder, opts: task_opts) {
237238
builder.opts = opts;
238239
}
239240

241+
fn set_sched_mode(builder: builder, mode: sched_mode) {
242+
set_opts(builder, {
243+
sched: some({
244+
mode: mode,
245+
foreign_stack_size: none
246+
})
247+
with get_opts(builder)
248+
});
249+
}
250+
240251
fn add_wrapper(builder: builder, gen_body: fn@(+fn~()) -> fn~()) {
241252
/*!
242253
* Add a wrapper to the body of the spawned task.
@@ -467,13 +478,7 @@ fn spawn_sched(mode: sched_mode, +f: fn~()) {
467478
*/
468479

469480
let mut builder = builder();
470-
set_opts(builder, {
471-
sched: some({
472-
mode: mode,
473-
foreign_stack_size: none
474-
})
475-
with get_opts(builder)
476-
});
481+
set_sched_mode(builder, mode);
477482
run(builder, f);
478483
}
479484

@@ -1207,14 +1212,7 @@ fn test_avoid_copying_the_body_unsupervise() {
12071212
#[test]
12081213
fn test_osmain() {
12091214
let buildr = builder();
1210-
let opts = {
1211-
sched: some({
1212-
mode: osmain,
1213-
foreign_stack_size: none
1214-
})
1215-
with get_opts(buildr)
1216-
};
1217-
set_opts(buildr, opts);
1215+
set_sched_mode(buildr, mode);
12181216

12191217
let po = comm::port();
12201218
let ch = comm::chan(po);

src/libstd/uv_global_loop.rs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,7 @@ fn get_monitor_task_gl() -> iotask unsafe {
4040

4141
let builder_fn = || {
4242
let builder = task::builder();
43-
task::set_opts(builder, {
44-
supervise: false,
45-
sched: some({
46-
mode: task::single_threaded,
47-
foreign_stack_size: none
48-
})
49-
with task::get_opts(builder)
50-
});
43+
task::set_sched_mode(builder, task::single_threaded);
5144
builder
5245
};
5346

src/libstd/uv_iotask.rs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,11 @@ enum iotask {
2525

2626
fn spawn_iotask(-builder: task::builder) -> iotask {
2727

28-
import task::{set_opts, get_opts, single_threaded, run};
29-
30-
set_opts(builder, {
31-
sched: some({
32-
mode: single_threaded,
33-
foreign_stack_size: none
34-
})
35-
with get_opts(builder)
36-
});
28+
task::set_sched_mode(builder, task::single_threaded);
3729

3830
do listen |iotask_ch| {
3931

40-
do run(copy(builder)) {
32+
do task::run(copy(builder)) {
4133
#debug("entering libuv task");
4234
run_loop(iotask_ch);
4335
#debug("libuv task exiting");

0 commit comments

Comments
 (0)