From b1eeb9b8256f42c9525832b6126a0e47d675e11e Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Mon, 5 Jul 2010 14:43:40 -0700 Subject: Change from 'spawner' to 'supervisor' in rust_task, and add an unsupervise call. --- src/rt/rust_task.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/rt/rust_task.cpp') diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index 5e230a58..09239c58 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -62,7 +62,7 @@ rust_task::rust_task(rust_dom *dom, rust_task *spawner) : state(&dom->running_tasks), cond(NULL), dptr(0), - spawner(spawner), + supervisor(spawner), idx(0), waiting_tasks(dom), alarm(this) @@ -336,12 +336,12 @@ rust_task::fail(size_t nargs) { if (this == dom->root_task) dom->fail(); run_after_return(nargs, dom->root_crate->get_unwind_glue()); - if (spawner) { + if (supervisor) { dom->log(rust_log::TASK, "task 0x%" PRIxPTR - " propagating failure to parent 0x%" PRIxPTR, - this, spawner); - spawner->kill(); + " propagating failure to supervisor 0x%" PRIxPTR, + this, supervisor); + supervisor->kill(); } } @@ -353,6 +353,15 @@ rust_task::gc(size_t nargs) run_after_return(nargs, dom->root_crate->get_gc_glue()); } +void +rust_task::unsupervise() +{ + dom->log(rust_log::TASK, + "task 0x%" PRIxPTR " disconnecting from supervisor 0x%" PRIxPTR, + this, supervisor); + supervisor = NULL; +} + void rust_task::notify_waiting_tasks() { -- cgit v1.2.3