std: Remove at_exit API. Unused
This commit is contained in:
parent
23b7ee2bda
commit
407bffb33e
6 changed files with 0 additions and 172 deletions
|
|
@ -31,8 +31,6 @@ rust_kernel::rust_kernel(rust_env *env) :
|
|||
sched_reaper(this),
|
||||
osmain_driver(NULL),
|
||||
non_weak_tasks(0),
|
||||
at_exit_runner(NULL),
|
||||
at_exit_started(false),
|
||||
env(env)
|
||||
{
|
||||
// Create the single threaded scheduler that will run on the platform's
|
||||
|
|
@ -310,54 +308,9 @@ rust_kernel::begin_shutdown() {
|
|||
}
|
||||
}
|
||||
|
||||
run_exit_functions();
|
||||
allow_scheduler_exit();
|
||||
}
|
||||
|
||||
void
|
||||
rust_kernel::register_exit_function(spawn_fn runner, fn_env_pair *f) {
|
||||
scoped_lock with(at_exit_lock);
|
||||
|
||||
assert(!at_exit_started && "registering at_exit function after exit");
|
||||
|
||||
if (at_exit_runner) {
|
||||
// FIXME #2912 Would be very nice to assert this but we can't because
|
||||
// of the way coretest works (the test case ends up using its own
|
||||
// function)
|
||||
//assert(runner == at_exit_runner
|
||||
// && "there can be only one at_exit_runner");
|
||||
}
|
||||
|
||||
at_exit_runner = runner;
|
||||
at_exit_fns.push_back(f);
|
||||
}
|
||||
|
||||
void
|
||||
rust_kernel::run_exit_functions() {
|
||||
rust_task *task;
|
||||
|
||||
{
|
||||
scoped_lock with(at_exit_lock);
|
||||
|
||||
assert(!at_exit_started && "running exit functions twice?");
|
||||
|
||||
at_exit_started = true;
|
||||
|
||||
if (at_exit_runner == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
rust_scheduler *sched = get_scheduler_by_id(main_sched_id());
|
||||
assert(sched);
|
||||
task = sched->create_task(NULL, "at_exit");
|
||||
|
||||
final_exit_fns.count = at_exit_fns.size();
|
||||
final_exit_fns.start = at_exit_fns.data();
|
||||
}
|
||||
|
||||
task->start(at_exit_runner, NULL, &final_exit_fns);
|
||||
}
|
||||
|
||||
//
|
||||
// Local Variables:
|
||||
// mode: C++
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue