Wymień wszystkie wątki w bieżącym procesie?

Próbuję zaimplementować wywołanie systemowe, które pozwala mi uzyskać liczbę wątków dla bieżącego procesu. Jestem nowym użytkownikiem jądra Linuksa, więc moje rozumienie go jest ograniczone.

Obecnie próbuję przeglądać wszystkietask_structs, i porównaj PID lidera grupy wątków z PID obecnego lidera grupy wątków:

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

Jednak wydaje się, że to nie działa (szybki test, który pojawia się w niektórych pthreads1. A co zgroup_leader jest wspólny dla wszystkich wątków w tym samym procesie?

questionAnswers(2)

yourAnswerToTheQuestion