diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-07-29 23:02:51 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-07-29 23:02:51 -0700 |
| commit | d552a0b95985f91278b2f3c05ee2c4b558a0a417 (patch) | |
| tree | 68ae8dc7103e27ac7cd9ea035cfeb54294ffabb5 /src/rt/rust_scheduler.cpp | |
| parent | ec46f07e6e41d91b86f5fee8cd0925934a0f7b60 (diff) | |
| download | rust-d552a0b95985f91278b2f3c05ee2c4b558a0a417.tar.gz rust-d552a0b95985f91278b2f3c05ee2c4b558a0a417.zip | |
Minimize scheduler locking on task creation
This takes my CPU utilization on task-perf-spawnalot from 35% to 55%
Diffstat (limited to 'src/rt/rust_scheduler.cpp')
| -rw-r--r-- | src/rt/rust_scheduler.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/rt/rust_scheduler.cpp b/src/rt/rust_scheduler.cpp index 6f91d17f9b8..47011e5a78d 100644 --- a/src/rt/rust_scheduler.cpp +++ b/src/rt/rust_scheduler.cpp @@ -272,7 +272,9 @@ rust_scheduler::create_task(rust_task *spawner, const char *name) { task->pin(spawner->pinned_on); task->on_wakeup(spawner->_on_wakeup); } + lock.lock(); newborn_tasks.append(task); + lock.unlock(); sync::increment(kernel->live_tasks); |
