Alle Themen im aktuellen Prozess auflisten?
Ich versuche, einen Syscall zu implementieren, mit dem ich die Anzahl der Threads für den aktuellen Prozess ermitteln kann. Ich bin neu im Linux-Kernel und daher verstehe ich es nur begrenzt.
Momentan versuche ich, die gesamte Datei zu durchlaufentask_struct
s, und vergleichen Sie die PID ihres Thread-Gruppenleiters mit der PID des aktuellen Thread-Gruppenleiters:
// ...
int nthreads = 0;
struct task_struct *task_it;
for_each_process(task_it) {
if (task_it->group_leader->pid == current->group_leader->pid) {
nthreads++;
}
}
// ...
Dies scheint jedoch nicht zu funktionieren (ein schneller Test, der einige Pthreads erzeugt, gibt es immer noch1
. Was ist mitgroup_leader
ist allen Threads im selben Prozess gemeinsam?