|
@@ -426,22 +426,12 @@ inline void Process::for_each_thread(Callback callback) const
|
|
|
{
|
|
|
InterruptDisabler disabler;
|
|
|
pid_t my_pid = pid();
|
|
|
- for (auto* thread = g_runnable_threads->head(); thread;) {
|
|
|
- auto* next_thread = thread->next();
|
|
|
- if (thread->pid() == my_pid) {
|
|
|
- if (callback(*thread) == IterationDecision::Break)
|
|
|
- break;
|
|
|
- }
|
|
|
- thread = next_thread;
|
|
|
- }
|
|
|
- for (auto* thread = g_nonrunnable_threads->head(); thread;) {
|
|
|
- auto* next_thread = thread->next();
|
|
|
- if (thread->pid() == my_pid) {
|
|
|
- if (callback(*thread) == IterationDecision::Break)
|
|
|
- break;
|
|
|
- }
|
|
|
- thread = next_thread;
|
|
|
- }
|
|
|
+ Thread::for_each([callback, my_pid](Thread& thread) -> IterationDecision {
|
|
|
+ if (thread.pid() == my_pid)
|
|
|
+ return callback(thread);
|
|
|
+
|
|
|
+ return IterationDecision::Continue;
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
template<typename Callback>
|