Synchroniser plusieurs processus avec SIGUSR1/SIGUSR2
Bonjour,
j'ai un programme principal qui crée deux fils, puis execute calcul_1 et calcul_2. Je veux faire en sorte que les 3 processus aient fini leur calcul_1 avant que l'un d'eux ne commence le calcul_2.
En gros je veux faire une barrière de synchronisation avec les signaux SIGUSR.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char **argv){
int i = 0;
pid_t pid_fils[2];
struct sigaction act;
while ((i<2) && (pid_fils[i] = fork()) != 0))
i++;
calcul_1();
calcul_2();
printf("fin processus %d \n", i);
return EXIT_SUCCESS;
} |