about summary refs log tree commit diff
path: root/src/rt/rust_task.cpp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-09-16 09:30:20 -0700
committerBrian Anderson <banderson@mozilla.com>2011-09-16 10:05:12 -0700
commit25394950ae562d6d70249745638edbbd14884d2c (patch)
treeead0a3340738c3a91fd0ae47bf4708c930a6df99 /src/rt/rust_task.cpp
parentad470d741e03a20debea1249a2d5c3f09ce38ce7 (diff)
downloadrust-25394950ae562d6d70249745638edbbd14884d2c.tar.gz
rust-25394950ae562d6d70249745638edbbd14884d2c.zip
Handle the case where a child task tries to kill a parent while it is dying
Still looks pretty racy
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 ffa9e5b7e99..7ef3975fd51 100644
--- a/src/rt/rust_task.cpp
+++ b/src/rt/rust_task.cpp
@@ -254,7 +254,7 @@ rust_task::yield(size_t time_in_us) {
     LOG(this, task, "task %s @0x%" PRIxPTR " yielding for %d us",
         name, this, time_in_us);
 
-    if (killed) {
+    if (killed && !dead()) {
         if (blocked()) {
             unblock();
         }