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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
}