summary refs log tree commit diff
path: root/src/rt/rust_task_thread.cpp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-03-17 18:29:10 -0700
committerBrian Anderson <banderson@mozilla.com>2012-03-18 18:18:18 -0700
commit6f6650e72645dc4eb16696f10f3a047e98722762 (patch)
treeda9f7981b3e0965a36648dcc5eec8fd8b4857946 /src/rt/rust_task_thread.cpp
parent5d4bf75f56a10c4d15acb3ecb3d33aeea5511806 (diff)
downloadrust-6f6650e72645dc4eb16696f10f3a047e98722762.tar.gz
rust-6f6650e72645dc4eb16696f10f3a047e98722762.zip
rt: Remove rust_task_thread::newborn_tasks
Diffstat (limited to 'src/rt/rust_task_thread.cpp')
-rw-r--r--src/rt/rust_task_thread.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/rt/rust_task_thread.cpp b/src/rt/rust_task_thread.cpp
index 1a90aae2c1b..91a335194b2 100644
--- a/src/rt/rust_task_thread.cpp
+++ b/src/rt/rust_task_thread.cpp
@@ -255,7 +255,6 @@ rust_task_thread::start_main_loop() {
         reap_dead_tasks();
     }
 
-    A(this, newborn_tasks.is_empty(), "Should have no newborn tasks");
     A(this, running_tasks.is_empty(), "Should have no running tasks");
     A(this, blocked_tasks.is_empty(), "Should have no blocked tasks");
     A(this, dead_tasks.is_empty(), "Should have no dead tasks");
@@ -280,11 +279,6 @@ rust_task_thread::create_task(rust_task *spawner, const char *name,
     DLOG(this, task, "created task: " PTR ", spawner: %s, name: %s",
                         task, spawner ? spawner->name : "null", name);
 
-    {
-        scoped_lock with(lock);
-        newborn_tasks.append(task);
-    }
-
     task->id = kernel->generate_task_id();
     return task;
 }
@@ -292,14 +286,14 @@ rust_task_thread::create_task(rust_task *spawner, const char *name,
 rust_task_list *
 rust_task_thread::state_list(rust_task_state state) {
     switch (state) {
-    case task_state_newborn:
-        return &newborn_tasks;
     case task_state_running:
         return &running_tasks;
     case task_state_blocked:
         return &blocked_tasks;
     case task_state_dead:
         return &dead_tasks;
+    default:
+        return NULL;
     }
 }
 
@@ -330,8 +324,14 @@ rust_task_thread::transition(rust_task *task,
          name, (uintptr_t)this, state_name(src), state_name(dst),
          state_name(task->get_state()));
     I(this, task->get_state() == src);
-    state_list(src)->remove(task);
-    state_list(dst)->append(task);
+    rust_task_list *src_list = state_list(src);
+    if (src_list) {
+        src_list->remove(task);
+    }
+    rust_task_list *dst_list = state_list(dst);
+    if (dst_list) {
+        dst_list->append(task);
+    }
     task->set_state(dst, cond, cond_name);
 
     lock.signal();