aboutsummaryrefslogtreecommitdiff
path: root/src/rt/rust_task.cpp
diff options
context:
space:
mode:
authorBrian Anderson <[email protected]>2010-12-29 00:33:52 -0500
committerGraydon Hoare <[email protected]>2011-01-03 10:59:00 -0800
commit73fd87baf50da704b04837fe059ed4fcad0f4660 (patch)
treec3761f1e64cb4254cf75f1dbda58fd59c600cba7 /src/rt/rust_task.cpp
parentUnset the RUST_LOG environment variable so that it doesn't interfere with the... (diff)
downloadrust-73fd87baf50da704b04837fe059ed4fcad0f4660.tar.xz
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.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp
index 680043cc..1522fccc 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);
}
}