|
@@ -631,6 +631,8 @@ void Process::finalize()
|
|
dump_perfcore();
|
|
dump_perfcore();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ m_threads_for_coredump.clear();
|
|
|
|
+
|
|
if (m_alarm_timer)
|
|
if (m_alarm_timer)
|
|
TimerQueue::the().cancel_timer(m_alarm_timer.release_nonnull());
|
|
TimerQueue::the().cancel_timer(m_alarm_timer.release_nonnull());
|
|
m_fds.clear();
|
|
m_fds.clear();
|
|
@@ -695,6 +697,11 @@ void Process::die()
|
|
// slave owner, we have to allow the PTY pair to be torn down.
|
|
// slave owner, we have to allow the PTY pair to be torn down.
|
|
m_tty = nullptr;
|
|
m_tty = nullptr;
|
|
|
|
|
|
|
|
+ for_each_thread([&](auto& thread) {
|
|
|
|
+ m_threads_for_coredump.append(&thread);
|
|
|
|
+ return IterationDecision::Continue;
|
|
|
|
+ });
|
|
|
|
+
|
|
kill_all_threads();
|
|
kill_all_threads();
|
|
}
|
|
}
|
|
|
|
|