about summary refs log tree commit diff
path: root/src/rt/rust_scheduler.cpp
diff options
context:
space:
mode:
authorEric Holk <eholk@mozilla.com>2011-07-29 11:00:44 -0700
committerGraydon Hoare <graydon@mozilla.com>2011-07-29 18:54:59 -0700
commitd1dbb99984064eedb77c0f55300430bcb35ce109 (patch)
tree9e45ab1c525f0c59ac892117d0dd5424d29a7f51 /src/rt/rust_scheduler.cpp
parentbc4e9afe2547fa88b55ffc31fef041dffe864b2b (diff)
downloadrust-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.cpp39
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);
     }