diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-02-06 21:12:59 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-02-08 15:42:51 -0800 |
| commit | ebc3646c39e2a24fe6eec778fb7ca5862d95acf7 (patch) | |
| tree | 99e0d948284a49741c480a3e407e550952ee9831 /src/rt/rust_kernel.cpp | |
| parent | 7685e5de941ec0a482218095e4d6cdd2e53375d8 (diff) | |
| download | rust-ebc3646c39e2a24fe6eec778fb7ca5862d95acf7.tar.gz rust-ebc3646c39e2a24fe6eec778fb7ca5862d95acf7.zip | |
rt: Start schedulers immediately upon creation
Diffstat (limited to 'src/rt/rust_kernel.cpp')
| -rw-r--r-- | src/rt/rust_kernel.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/rt/rust_kernel.cpp b/src/rt/rust_kernel.cpp index 3b9a60a3064..8c1278a88db 100644 --- a/src/rt/rust_kernel.cpp +++ b/src/rt/rust_kernel.cpp @@ -60,6 +60,7 @@ rust_kernel::create_scheduler(size_t num_threads) { sched = new (this, "rust_scheduler") rust_scheduler(this, srv, num_threads, 0); live_schedulers = 1; + sched->start_task_threads(); return 0; } @@ -84,15 +85,12 @@ int rust_kernel::wait_for_schedulers() { I(this, !sched_lock.lock_held_by_current_thread()); - sched->start_task_threads(); - { - scoped_lock with(sched_lock); - // Schedulers could possibly have already exited - if (live_schedulers != 0) { - sched_lock.wait(); - } - return rval; + scoped_lock with(sched_lock); + // Schedulers could possibly have already exited + if (live_schedulers != 0) { + sched_lock.wait(); } + return rval; } void |
