Bonsoir,

mon probleme :
j'ai un tableau de valeur ID

je dois utilisé n processus pour parcourir ce tableau , recupere ID ( en le dépilant du tableau et bloquer les autre processus pour ne pas avoir le meme ID traité).
chaque processus devra effectué le meme travail avec les ID.

bref voila ou j'en suis :

le tableau de base qui doit servir a chaque proc est bien rempli.

$Tableau = array(1,2,3,4,5,6,7,8,9,10); // exemple bidon pour vous expliquer

function sig_handler est bien defini

maintenant j aimerais executer mes proc tant que mon tableau n'est pas vide
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
 
while(count($Tableau)>0){
	$pid = pcntl_fork();
	if($pid == -1) {
		// Impossible de forker ...  
		die("Impossible de me forker!");
	} elseif($pid) {
		// Nous sommes le parent 
		array_push($Enfants, $pid);
 
	} else {
		// nous sommes le processus enfant, lancement de la boucle de traitement  
		FunctionSpecial();
		exit();
	}
}
ca c'est le code avec lesquel je dois bosser.
pour pas que les processus puisse recup le meme ID , je pensais declarer un tableau avec les pid des proc en key et pour valeur l'ID recup de $Tableau.
et ce tableau commun serais en memoire partagé sur les enfants.
et du coté du parent, quand il voit qu un enfant a fini et aurait donc viré son ID du tableau partagé , il dépilerais une valeur du $Tableau et l"insererais ds la tableau partagé.

bon c'est une idée
je suis un peu pommé.
si vous pouviez m'aidez a résoudre ce prob qui est que n processus doivent traiter les valeur d'un meme array