Holas...
Gracias por tu atención y colaboración.
Si se lo que estoy haciendo

la unica duda es que no recuerdo el porque de crear el fork dentro del hilo; creo que he encontrado la solucion

bueno en realidad me esta ayudando también un compañero de trabajo !!
esta es la mia...
while (waitpid(proceso_fork,&estado_fork,WNOHANG) != proceso_fork);
La de el es mas completa porque cada que crea un HILO guarda la direccion de memoria de este! y cada que crea un proceso tambien guarda el PID , así cuando el waitpid recibe la señal de que el PID .... este busca el PID, EL HILO, y lo mata y así se asegura de terminar el HILO que debe terminar! ... bueno de momento tengo las 2 opciones! pero me inclinare por la de mi compañero...