diff options
| author | Ben Blum <bblum@andrew.cmu.edu> | 2012-07-20 18:47:47 -0400 |
|---|---|---|
| committer | Ben Blum <bblum@andrew.cmu.edu> | 2012-07-20 19:23:19 -0400 |
| commit | af7b7694659dd8988a1971118494edb684f85fbb (patch) | |
| tree | 75b28f06c7c8715dd42384b259afae38ac69cde7 /src/rt/rust_scheduler.cpp | |
| parent | 18c645a8839dd86d7f353d0fe98eaf27e246a525 (diff) | |
| download | rust-af7b7694659dd8988a1971118494edb684f85fbb.tar.gz rust-af7b7694659dd8988a1971118494edb684f85fbb.zip | |
[3/4 for #2365, #2671] Fix exit/kill race with scheds during rust_kernel::fail
Diffstat (limited to 'src/rt/rust_scheduler.cpp')
| -rw-r--r-- | src/rt/rust_scheduler.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/rt/rust_scheduler.cpp b/src/rt/rust_scheduler.cpp index dc662b009ac..5dd1a261c0e 100644 --- a/src/rt/rust_scheduler.cpp +++ b/src/rt/rust_scheduler.cpp @@ -11,6 +11,7 @@ rust_scheduler::rust_scheduler(rust_kernel *kernel, bool allow_exit, bool killed, rust_sched_launcher_factory *launchfac) : + ref_count(1), kernel(kernel), live_threads(num_threads), live_tasks(0), @@ -22,8 +23,9 @@ rust_scheduler::rust_scheduler(rust_kernel *kernel, create_task_threads(launchfac, killed); } -rust_scheduler::~rust_scheduler() { +void rust_scheduler::delete_this() { destroy_task_threads(); + delete this; } rust_sched_launcher * |
