Enviar señales

Iniciado por Katerina Dobreva, 4 Diciembre 2016, 22:45 PM

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

Katerina Dobreva

Quiero enviar una señal del hijo 1 al hijo 2 y que cuando la reciba salte a la manejadora, después que el hijo 2 envíe una señal al hijo 1 y salte a la manejadora, pero cuando pasen 5 segundos se maten los procesos.

Consigo que se maten los procesos cuando pasan los 5 segundos, pero no que se envíen las señales SIGUSR1 antes. ¿Alguien podría ayudarme?

Código (cpp) [Seleccionar]
int main(int argc, char **argv) {
struct sigaction action;
sigset_t new_mask, oldmask;
int exitcode;

action.sa_flags = 0;
action.sa_handler = funcion;

sigaction(SIGTERM, &action, NULL);
sigemptyset(&new_mask);
sigaddset(&new_mask, SIGTERM);
       sigaddset(&new_mask, SIGUSR1);

hijo1 = fork();
switch(hijo1) {
case 0:
               kill(hijo2, SIGUSR1);
sigprocmask(SIG_BLOCK, &new_mask, &oldmask);
sigsuspend(&new_mask);
}

hijo2 = fork();
switch(hijo2) {
case 0:
               kill(hijo1, SIGUSR1);
sigprocmask(SIG_BLOCK, &new_mask, &oldmask);
sigsuspend(&new_mask);
}

signal(SIGALRM, tiempo);
alarm(5);
wait(&exitcode);
wait(&exitcode);
}



Mod: Los códigos deben ir en etiquetas GeSHi