kernel_thread 생성 후 defunct 문제

duke74s의 이미지

kernel_thread로 쓰레드를 생성 후(t1)... 이 쓰레드(t1)이 다시 kernel_thread를 호출하여
쓰레드를 생성합니다(tx).... t1은 데몬처럼 항상 떠서 일을 하는 쓰레드인데... 모듈을 내리기 전에는
종료하지 않습니다. 이 t1이 특정 시점에 쓰레드들을 생성하는데
생성된 쓰레드들 tx가 defunct가 되는 문제가 있습니다.
2.4 커널에서는 sys_wait4를 호출하여 방지할 수 있었습니다.
그런데 2.6 커널에서는 sys_wait4가 export가 되어 있지 않군요!!
물론 커널 패치를 해서 export 시킬 수도 있겠지만... 커널 패치 없이 defunct 없애는 방법을
좀 갈켜 주세요!!!

prether의 이미지

#include _asm/unistd.h_

에 정의된 _syscall4() 매크로 함수를 이용하여

_syscall4(long, wait4, pid_t, pid, int *, stat_addr,
int, options, struct rusage *, ru)

호출을 사용해보심이....

/***************************************
Being the one is just like being in love.
***************************************/