Listar todos os tópicos dentro do processo atual?

Estou tentando implementar um syscall que me permite obter o número de threads para o processo atual. Eu sou novo no kernel do Linux e, portanto, meu entendimento é limitado.

Atualmente, estou tentando fazer uma iteração em todos ostask_structs, e compare o PID do líder do grupo de tópicos com o PID do líder do grupo de tópicos atual:

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

No entanto, isso não parece estar funcionando (um teste rápido de desova alguns pthreads ainda está dando1. O que acontece com ogroup_leader é comum a todos os threads no mesmo processo?

questionAnswers(2)

yourAnswerToTheQuestion