diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-04-01 17:22:24 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-04-01 17:27:18 -0700 |
| commit | 7c1be236a524980b65b01a327e2c55feb6295a52 (patch) | |
| tree | 292e3380915c2f36ab174d3059b24257bb6e51e3 /src/rt/rust_scheduler.cpp | |
| parent | fb528dd7d613964e05dd682a6a98980a1ebdb4d6 (diff) | |
| download | rust-7c1be236a524980b65b01a327e2c55feb6295a52.tar.gz rust-7c1be236a524980b65b01a327e2c55feb6295a52.zip | |
rt: Introduce rust_sched_launcher_factory. Sorry, I need one
Diffstat (limited to 'src/rt/rust_scheduler.cpp')
| -rw-r--r-- | src/rt/rust_scheduler.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/rt/rust_scheduler.cpp b/src/rt/rust_scheduler.cpp index 57b166208f9..82eac1b1c93 100644 --- a/src/rt/rust_scheduler.cpp +++ b/src/rt/rust_scheduler.cpp @@ -17,7 +17,8 @@ rust_scheduler::rust_scheduler(rust_kernel *kernel, num_threads(num_threads), id(id) { - create_task_threads(); + rust_thread_sched_launcher_factory launchfac; + create_task_threads(&launchfac); } rust_scheduler::~rust_scheduler() { @@ -25,11 +26,9 @@ rust_scheduler::~rust_scheduler() { } rust_sched_launcher * -rust_scheduler::create_task_thread(int id) { - rust_srv *srv = this->srv->clone(); - rust_sched_launcher *thread = - new (kernel, "rust_thread_sched_launcher") - rust_thread_sched_launcher(this, srv, id); +rust_scheduler::create_task_thread(rust_sched_launcher_factory *launchfac, + int id) { + rust_sched_launcher *thread = launchfac->create(this, id); KLOG(kernel, kern, "created task thread: " PTR ", id: %d", thread, id); return thread; @@ -44,11 +43,11 @@ rust_scheduler::destroy_task_thread(rust_sched_launcher *thread) { } void -rust_scheduler::create_task_threads() { +rust_scheduler::create_task_threads(rust_sched_launcher_factory *launchfac) { KLOG(kernel, kern, "Using %d scheduler threads.", num_threads); for(size_t i = 0; i < num_threads; ++i) { - threads.push(create_task_thread(i)); + threads.push(create_task_thread(launchfac, i)); } } |
