parent
1339d05434
commit
bb08ffbaf4
2 changed files with 3 additions and 3 deletions
|
@ -244,6 +244,7 @@ rust_task::fail() {
|
||||||
// See note in ::kill() regarding who should call this.
|
// See note in ::kill() regarding who should call this.
|
||||||
DLOG(sched, task, "task %s @0x%" PRIxPTR " failing", name, this);
|
DLOG(sched, task, "task %s @0x%" PRIxPTR " failing", name, this);
|
||||||
backtrace();
|
backtrace();
|
||||||
|
die();
|
||||||
// Unblock the task so it can unwind.
|
// Unblock the task so it can unwind.
|
||||||
unblock();
|
unblock();
|
||||||
if (supervisor) {
|
if (supervisor) {
|
||||||
|
@ -257,6 +258,8 @@ rust_task::fail() {
|
||||||
if (NULL == supervisor && propagate_failure)
|
if (NULL == supervisor && propagate_failure)
|
||||||
sched->fail();
|
sched->fail();
|
||||||
failed = true;
|
failed = true;
|
||||||
|
notify_tasks_waiting_to_join();
|
||||||
|
yield(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -92,10 +92,7 @@ upcall_fail(rust_task *task,
|
||||||
size_t line) {
|
size_t line) {
|
||||||
LOG_UPCALL_ENTRY(task);
|
LOG_UPCALL_ENTRY(task);
|
||||||
LOG_ERR(task, upcall, "upcall fail '%s', %s:%" PRIdPTR, expr, file, line);
|
LOG_ERR(task, upcall, "upcall fail '%s', %s:%" PRIdPTR, expr, file, line);
|
||||||
task->die();
|
|
||||||
task->fail();
|
task->fail();
|
||||||
task->notify_tasks_waiting_to_join();
|
|
||||||
task->yield(4);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue