현재 프로세스의 스레드 수를 얻을 수있는 syscall을 구현하려고합니다. 나는 리눅스 커널에 익숙하지 않아, 나의 이해가 제한적이다.현재 프로세스 내의 모든 스레드를 나열 하시겠습니까?
현재, 나는 모든 task_struct
의 반복, 현재의 thread 그룹 리더의 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
에 대한 어떤 것은 동일한 프로세스의 모든 스레드에 공통입니까?
프로세스에 얼마나 많은 쓰레드가 있는지 찾기 위해'/ proc/$ pid/task /'가 작동하지 않겠는가? –
http://stackoverflow.com/a/12660720/651394 –