Duda c++/unix

Iniciado por O-LLOS-O, 14 Julio 2011, 11:30 AM

0 Miembros y 1 Visitante están viendo este tema.

O-LLOS-O

Hola a todos,

Miren tengo un problema con un programa que estoy haciendo.

Código (cpp) [Seleccionar]

kill(pids[i],SIGCONT);

cout << "RUN" << endl;


este es el trozo clave, he  hecho un programa que tiene N hijos, i redirecciono la salida estandar del padre con la de los hijos, para que no se ejecuten todos a la vez, y se ejecuten de uno en uno estos hijos,  el padre les envia un SIGSTOP, y cuando quiero que el hijo iesimo sea el que se ejecute pues le envio un SIGCONT.

El problema esta en que si los hijos no reciben el por la entrada estandar "RUN" el padre se queda colgado, eso es normal, lo que no entiendo es PQ no reciben el RUN.

Para aclarar, esto falla una vez de cada 100 asi que en mi opinion es que aun no se ha hecho efectivo el SIGCONT, si pongo usleep(N) entre el SIGCONT y el cout augmento el porcentage de éxito pero es muy sucio y no va siempre.

Haber si alguien me puede ayudar a asegurar que funcione.

Muchas gracias

Akai

Más código e no podemos ayudarte. Nos quedamos sin bolas de cristal hace tiempo.

Por otro lado, revisa eso de procesos durmiendo y enviar mensajes, puede que se estén perdiendo.