rt: Remove rust_task::notify_tasks_wating_to_join
This commit is contained in:
@@ -137,7 +137,6 @@ rust_scheduler::reap_dead_tasks(int id) {
|
|||||||
task->lock.lock();
|
task->lock.lock();
|
||||||
// Make sure this task isn't still running somewhere else...
|
// Make sure this task isn't still running somewhere else...
|
||||||
if (task->can_schedule(id)) {
|
if (task->can_schedule(id)) {
|
||||||
I(this, task->tasks_waiting_to_join.is_empty());
|
|
||||||
DLOG(this, task,
|
DLOG(this, task,
|
||||||
"deleting unreferenced dead task %s @0x%" PRIxPTR,
|
"deleting unreferenced dead task %s @0x%" PRIxPTR,
|
||||||
task->name, task);
|
task->name, task);
|
||||||
|
|||||||
@@ -197,7 +197,6 @@ void task_start_wrapper(spawn_args *a)
|
|||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
task->lock.lock();
|
task->lock.lock();
|
||||||
task->notify_tasks_waiting_to_join();
|
|
||||||
task->lock.unlock();
|
task->lock.unlock();
|
||||||
task->yield(1);
|
task->yield(1);
|
||||||
}
|
}
|
||||||
@@ -324,7 +323,6 @@ rust_task::conclude_failure() {
|
|||||||
unblock();
|
unblock();
|
||||||
fail_parent();
|
fail_parent();
|
||||||
failed = true;
|
failed = true;
|
||||||
notify_tasks_waiting_to_join();
|
|
||||||
yield(4);
|
yield(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -356,19 +354,6 @@ rust_task::unsupervise()
|
|||||||
propagate_failure = false;
|
propagate_failure = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
rust_task::notify_tasks_waiting_to_join() {
|
|
||||||
while (tasks_waiting_to_join.is_empty() == false) {
|
|
||||||
LOG(this, task, "notify_tasks_waiting_to_join: %d",
|
|
||||||
tasks_waiting_to_join.size());
|
|
||||||
rust_task *waiting_task = 0;
|
|
||||||
tasks_waiting_to_join.pop(&waiting_task);
|
|
||||||
if (waiting_task->blocked() == true) {
|
|
||||||
waiting_task->wakeup(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
frame_glue_fns*
|
frame_glue_fns*
|
||||||
rust_task::get_frame_glue_fns(uintptr_t fp) {
|
rust_task::get_frame_glue_fns(uintptr_t fp) {
|
||||||
fp -= sizeof(uintptr_t);
|
fp -= sizeof(uintptr_t);
|
||||||
|
|||||||
@@ -99,9 +99,6 @@ rust_task : public kernel_owned<rust_task>, rust_cond
|
|||||||
// that location before waking us up.
|
// that location before waking us up.
|
||||||
uintptr_t* rendezvous_ptr;
|
uintptr_t* rendezvous_ptr;
|
||||||
|
|
||||||
// List of tasks waiting for this task to finish.
|
|
||||||
array_list<rust_task *> tasks_waiting_to_join;
|
|
||||||
|
|
||||||
// This flag indicates that a worker is either currently running the task
|
// This flag indicates that a worker is either currently running the task
|
||||||
// or is about to run this task.
|
// or is about to run this task.
|
||||||
int running_on;
|
int running_on;
|
||||||
@@ -184,9 +181,6 @@ rust_task : public kernel_owned<rust_task>, rust_cond
|
|||||||
// Disconnect from our supervisor.
|
// Disconnect from our supervisor.
|
||||||
void unsupervise();
|
void unsupervise();
|
||||||
|
|
||||||
// Notify tasks waiting for us that we are about to die.
|
|
||||||
void notify_tasks_waiting_to_join();
|
|
||||||
|
|
||||||
frame_glue_fns *get_frame_glue_fns(uintptr_t fp);
|
frame_glue_fns *get_frame_glue_fns(uintptr_t fp);
|
||||||
rust_crate_cache * get_crate_cache();
|
rust_crate_cache * get_crate_cache();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user