diff options
| author | Eric Holk <eholk@mozilla.com> | 2011-07-29 11:00:44 -0700 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2011-07-29 18:54:59 -0700 |
| commit | d1dbb99984064eedb77c0f55300430bcb35ce109 (patch) | |
| tree | 9e45ab1c525f0c59ac892117d0dd5424d29a7f51 /src/rt/rust_scheduler.cpp | |
| parent | bc4e9afe2547fa88b55ffc31fef041dffe864b2b (diff) | |
| download | rust-d1dbb99984064eedb77c0f55300430bcb35ce109.tar.gz rust-d1dbb99984064eedb77c0f55300430bcb35ce109.zip | |
Removing proxies and message queues.
Diffstat (limited to 'src/rt/rust_scheduler.cpp')
| -rw-r--r-- | src/rt/rust_scheduler.cpp | 39 |
1 files changed, 8 insertions, 31 deletions
diff --git a/src/rt/rust_scheduler.cpp b/src/rt/rust_scheduler.cpp index c4987bbd3f1..6f91d17f9b8 100644 --- a/src/rt/rust_scheduler.cpp +++ b/src/rt/rust_scheduler.cpp @@ -4,7 +4,6 @@ #include "globals.h" rust_scheduler::rust_scheduler(rust_kernel *kernel, - rust_message_queue *message_queue, rust_srv *srv, int id) : interrupt_flag(0), @@ -19,7 +18,6 @@ rust_scheduler::rust_scheduler(rust_kernel *kernel, dead_tasks(this, "dead"), cache(this), kernel(kernel), - message_queue(message_queue), id(id), min_stack_size(kernel->env->min_stack_size), env(kernel->env) @@ -109,21 +107,6 @@ rust_scheduler::reap_dead_tasks(int id) { } /** - * Drains and processes incoming pending messages. - */ -void rust_scheduler::drain_incoming_message_queue(bool process) { - rust_message *message; - while (message_queue->dequeue(&message)) { - DLOG(this, comm, "<== receiving \"%s\" " PTR, - message->label, message); - if (process) { - message->process(); - } - delete message; - } -} - -/** * Schedules a running task for execution. Only running tasks can be * activated. Blocked tasks have to be unblocked before they can be * activated. @@ -207,8 +190,6 @@ rust_scheduler::start_main_loop() { DLOG(this, dom, "worker %d, number_of_live_tasks = %d, total = %d", id, number_of_live_tasks(), kernel->live_tasks); - drain_incoming_message_queue(true); - rust_task *scheduled_task = schedule_task(id); if (scheduled_task == NULL) { @@ -259,18 +240,14 @@ rust_scheduler::start_main_loop() { "terminated scheduler loop, reaping dead tasks ..."); while (dead_tasks.length() > 0) { - if (message_queue->is_empty()) { - DLOG(this, dom, - "waiting for %d dead tasks to become dereferenced, " - "scheduler yielding ...", - dead_tasks.length()); - log_state(); - lock.unlock(); - sync::yield(); - lock.lock(); - } else { - drain_incoming_message_queue(true); - } + DLOG(this, dom, + "waiting for %d dead tasks to become dereferenced, " + "scheduler yielding ...", + dead_tasks.length()); + log_state(); + lock.unlock(); + sync::yield(); + lock.lock(); reap_dead_tasks(id); } |
