version 1.78, 2013/04/01 15:29:34
|
version 1.79, 2013/05/21 12:10:12
|
Line 42 lancement_thread(void *argument)
|
Line 42 lancement_thread(void *argument)
|
|
|
pid_t ppid; |
pid_t ppid; |
|
|
pthread_t tid_final; |
|
|
|
sig_atomic_t registre_stop; |
sig_atomic_t registre_stop; |
|
|
ssize_t longueur_ecriture; |
ssize_t longueur_ecriture; |
Line 65 lancement_thread(void *argument)
|
Line 63 lancement_thread(void *argument)
|
|
|
struct timespec attente; |
struct timespec attente; |
|
|
|
unsigned char caractere; |
unsigned char *message; |
unsigned char *message; |
|
|
unsigned int erreur; |
unsigned int erreur; |
Line 95 lancement_thread(void *argument)
|
Line 94 lancement_thread(void *argument)
|
// Envoi d'une donnée pour signaler le démarrage du thread au thread |
// Envoi d'une donnée pour signaler le démarrage du thread au thread |
// de surveillance. |
// de surveillance. |
|
|
|
caractere = 0; |
|
|
if (write_atomic(s_etat_processus, |
if (write_atomic(s_etat_processus, |
(*s_argument_thread).pipe_nombre_objets_attente[1], |
(*s_argument_thread).pipe_nombre_elements_attente[1], |
"-", sizeof(unsigned char)) != sizeof(unsigned char)) |
&caractere, sizeof(caractere)) != sizeof(caractere)) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
|
Line 106 lancement_thread(void *argument)
|
Line 107 lancement_thread(void *argument)
|
|
|
(*s_argument_thread).thread_actif = d_faux; |
(*s_argument_thread).thread_actif = d_faux; |
|
|
tid_final = (pthread_t) -2; |
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, |
while((longueur_ecriture = write_atomic(s_etat_processus, |
(*s_argument_thread).pipe_nombre_interruptions_attente[1], |
(*s_argument_thread).pipe_nombre_elements_attente[1], |
&tid_final, sizeof(tid_final))) != sizeof(tid_final)) |
&caractere, sizeof(caractere))) != sizeof(caractere)) |
{ |
|
if (longueur_ecriture == -1) |
|
{ |
|
break; |
|
} |
|
} |
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, |
|
(*s_argument_thread).pipe_nombre_objets_attente[1], |
|
&tid_final, sizeof(tid_final))) != sizeof(tid_final)) |
|
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 230 lancement_thread(void *argument)
|
Line 219 lancement_thread(void *argument)
|
pthread_cancel((*s_etat_processus).thread_fusible); |
pthread_cancel((*s_etat_processus).thread_fusible); |
} |
} |
|
|
tid_final = (pthread_t) -2; |
caractere = 0; |
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, |
|
(*s_argument_thread).pipe_nombre_interruptions_attente[1], |
|
&tid_final, sizeof(tid_final))) != sizeof(tid_final)) |
|
{ |
|
if (longueur_ecriture == -1) |
|
{ |
|
break; |
|
} |
|
} |
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, |
while((longueur_ecriture = write_atomic(s_etat_processus, |
(*s_argument_thread).pipe_nombre_objets_attente[1], |
(*s_argument_thread).pipe_nombre_elements_attente[1], |
&tid_final, sizeof(tid_final))) != sizeof(tid_final)) |
&caractere, sizeof(caractere))) != sizeof(caractere)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 273 lancement_thread(void *argument)
|
Line 252 lancement_thread(void *argument)
|
{ |
{ |
while((longueur_ecriture = write_atomic(s_etat_processus, |
while((longueur_ecriture = write_atomic(s_etat_processus, |
(*s_argument_thread).pipe_erreurs[1], |
(*s_argument_thread).pipe_erreurs[1], |
&((*s_etat_processus).erreur_execution), |
(int *) &((*s_etat_processus).erreur_execution), |
sizeof((*s_etat_processus).erreur_execution))) != |
sizeof((*s_etat_processus).erreur_execution))) != |
sizeof((*s_etat_processus).erreur_execution)) |
sizeof((*s_etat_processus).erreur_execution)) |
{ |
{ |
Line 305 lancement_thread(void *argument)
|
Line 284 lancement_thread(void *argument)
|
{ |
{ |
while((longueur_ecriture = write_atomic(s_etat_processus, |
while((longueur_ecriture = write_atomic(s_etat_processus, |
(*s_argument_thread).pipe_erreurs[1], |
(*s_argument_thread).pipe_erreurs[1], |
&((*s_etat_processus).erreur_systeme), |
(int *) &((*s_etat_processus).erreur_systeme), |
sizeof((*s_etat_processus).erreur_systeme))) != |
sizeof((*s_etat_processus).erreur_systeme))) != |
sizeof((*s_etat_processus).erreur_systeme)) |
sizeof((*s_etat_processus).erreur_systeme)) |
{ |
{ |
Line 347 lancement_thread(void *argument)
|
Line 326 lancement_thread(void *argument)
|
|
|
close((*s_argument_thread).pipe_erreurs[1]); |
close((*s_argument_thread).pipe_erreurs[1]); |
close((*s_argument_thread).pipe_interruptions[1]); |
close((*s_argument_thread).pipe_interruptions[1]); |
close((*s_argument_thread).pipe_nombre_interruptions_attente[1]); |
close((*s_argument_thread).pipe_nombre_elements_attente[1]); |
close((*s_argument_thread).pipe_objets[1]); |
close((*s_argument_thread).pipe_objets[1]); |
close((*s_argument_thread).pipe_nombre_objets_attente[1]); |
|
close((*s_argument_thread).pipe_injections[0]); |
close((*s_argument_thread).pipe_injections[0]); |
close((*s_argument_thread).pipe_nombre_injections[0]); |
close((*s_argument_thread).pipe_nombre_injections[0]); |
close((*s_argument_thread).pipe_acquittement[0]); |
close((*s_argument_thread).pipe_acquittement[0]); |