Список всех потоков в текущем процессе?

Я пытаюсь реализовать системный вызов, который позволяет мне получить количество потоков для текущего процесса. Я новичок в ядре Linux, и поэтому мое понимание этого ограничено.

В настоящее время я пытаюсь перебрать всеtask_structs, и сравните PID лидера их группы потоков с текущим PID лидера группы потоков:

// ...
int nthreads = 0;
struct task_struct *task_it;
for_each_process(task_it) {
    if (task_it->group_leader->pid == current->group_leader->pid) {
        nthreads++;
    }
}
// ...

Тем не менее, это, похоже, не работает (быстрый тест порождает некоторые pthreads все еще дает1, Что насчетgroup_leader является общим для всех потоков в одном процессе?

Ответы на вопрос(2)

Ваш ответ на вопрос