diff options
| author | Brian Anderson <andersrb@gmail.com> | 2010-12-29 00:33:52 -0500 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2011-01-03 10:59:00 -0800 |
| commit | 73fd87baf50da704b04837fe059ed4fcad0f4660 (patch) | |
| tree | c3761f1e64cb4254cf75f1dbda58fd59c600cba7 /src/rt/rust_task.cpp | |
| parent | 2ec4325fe9fe5808d7abab544e3a9ce896093f51 (diff) | |
| download | rust-73fd87baf50da704b04837fe059ed4fcad0f4660.tar.gz rust-73fd87baf50da704b04837fe059ed4fcad0f4660.zip | |
Don't attempt to wake tasks that aren't blocked.
It's possible for a supervised task to kill and wake its supervising task then immediately try to wake it again if the supervising task has joined the supervised. This is the easiest way to prevent that.
Diffstat (limited to 'src/rt/rust_task.cpp')
| -rw-r--r-- | src/rt/rust_task.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index 680043cc35b..1522fcccb1c 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -420,7 +420,7 @@ rust_task::notify_tasks_waiting_to_join() { delete waiting_task; } else { rust_task *task = waiting_task->referent(); - if (task->dead() == false) { + if (task->blocked() == true) { task->wakeup(this); } } |
