diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-09-20 18:49:31 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-09-25 20:05:56 -0700 |
| commit | d209717ddd260a5b0afd0dd07cddde903281f353 (patch) | |
| tree | 6c04e6cd4444c87239db877c2a4ca4ba3c05d0a2 /src/libstd/task | |
| parent | 00db6f6e7be04882b67660adcf04811511d4b8c2 (diff) | |
| download | rust-d209717ddd260a5b0afd0dd07cddde903281f353.tar.gz rust-d209717ddd260a5b0afd0dd07cddde903281f353.zip | |
std::rt: Implement task yielding. Fix a starvation problem
Diffstat (limited to 'src/libstd/task')
| -rw-r--r-- | src/libstd/task/mod.rs | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/libstd/task/mod.rs b/src/libstd/task/mod.rs index 1dbc644c8e5..e6f6536956c 100644 --- a/src/libstd/task/mod.rs +++ b/src/libstd/task/mod.rs @@ -542,12 +542,9 @@ pub fn deschedule() { use rt::local::Local; use rt::sched::Scheduler; - // FIXME #6842: What does yield really mean in newsched? // FIXME(#7544): Optimize this, since we know we won't block. let sched: ~Scheduler = Local::take(); - do sched.deschedule_running_task_and_then |sched, task| { - sched.enqueue_blocked_task(task); - } + sched.yield_now(); } pub fn failing() -> bool { |
