diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-03-17 18:29:10 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-03-18 18:18:18 -0700 |
| commit | 6f6650e72645dc4eb16696f10f3a047e98722762 (patch) | |
| tree | da9f7981b3e0965a36648dcc5eec8fd8b4857946 /src/rt/rust_task_thread.cpp | |
| parent | 5d4bf75f56a10c4d15acb3ecb3d33aeea5511806 (diff) | |
| download | rust-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.cpp | 20 |
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(); |
