Quel probleme peut se cacher derriere un sujet aussi étrange arf !
Bon voila un bout de code:
Ceci est un bout de code d'un thread qui est sensé creer des processus toutes les 5 secondes et placer certaines infos concernant les processus dans une liste chainee.
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
22
23
24
25
26
27
28
29
30
31 while(1){ priorite=rand()%10; //priorités de 0 a 9 tpsExec=rand()%15 + 5; //tps d'execution de 5 a 19 dateS=1111;//date de soumission fixe pour le moment sprintf(tpsExecChar, "%i",tpsExec);//conversion en char switch(pid=fork()){ case -1: perror("Erreur creation processus"); break; case 0: //dans le fils if (execl("./proc","proc",tpsExecChar,NULL)!=0)perror("lancement processus"); break; default://dans le pere //ajout du processus a la table pthread_mutex_lock (&mutex); Add(&tabProc,pid, priorite, dateS); pthread_mutex_unlock (&mutex); //printf("ajoutEffectue\n"); break; } //printf("Processus lancé ! pid : %d | priorite : %d | dateS : %d\n",pid,priorite,dateS); if(kill(pid,SIGINT)==-1){ printf("erreur envoi du signal\n"); }else{ printf("signal bien envoyé\n"); } sleep(5); }
Les processus créés on un handler pour le SIGINT :
Le souci est que au apres que le premier SIGINT soit lancé, c'est comme si le sleep était court-circuité, on a ensuite une création de processus tres rapide et le lancement des signaux a la meme vitesse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void handlerSIGINT(int sig){ printf("Processus %d : arret\n",monPid); exit(0); }
Je voi pas du tout quel peut être le probleme...
Partager