version 1.165, 2019/02/03 14:40:38
|
version 1.168, 2019/02/11 06:18:20
|
Line 2243 instruction_detach(struct_processus *s_e
|
Line 2243 instruction_detach(struct_processus *s_e
|
{ |
{ |
if ((*s_etat_processus).var_volatile_alarme != 0) |
if ((*s_etat_processus).var_volatile_alarme != 0) |
{ |
{ |
envoi_signal_thread((*(*((struct_processus_fils *) |
envoi_signal_thread(s_etat_processus, |
|
(*(*((struct_processus_fils *) |
(*(*l_element_courant).donnee).objet)).thread) |
(*(*l_element_courant).donnee).objet)).thread) |
.tid, rpl_sigurg); |
.tid, rpl_sigurg); |
} |
} |
Line 2251 instruction_detach(struct_processus *s_e
|
Line 2252 instruction_detach(struct_processus *s_e
|
{ |
{ |
if ((*s_etat_processus).arret_depuis_abort == -1) |
if ((*s_etat_processus).arret_depuis_abort == -1) |
{ |
{ |
envoi_signal_thread((*(*((struct_processus_fils *) |
envoi_signal_thread(s_etat_processus, |
|
(*(*((struct_processus_fils *) |
(*(*l_element_courant).donnee).objet)) |
(*(*l_element_courant).donnee).objet)) |
.thread).tid, rpl_sigabort); |
.thread).tid, rpl_sigabort); |
} |
} |
else |
else |
{ |
{ |
envoi_signal_thread((*(*((struct_processus_fils *) |
envoi_signal_thread(s_etat_processus, |
|
(*(*((struct_processus_fils *) |
(*(*l_element_courant).donnee).objet)) |
(*(*l_element_courant).donnee).objet)) |
.thread).tid, rpl_sigstop); |
.thread).tid, rpl_sigstop); |
} |
} |
Line 2304 instruction_detach(struct_processus *s_e
|
Line 2307 instruction_detach(struct_processus *s_e
|
.donnee).objet)).thread).nombre_objets_dans_pipe--; |
.donnee).objet)).thread).nombre_objets_dans_pipe--; |
|
|
action.sa_handler = SIG_IGN; |
action.sa_handler = SIG_IGN; |
action.sa_flags = SA_ONSTACK; |
action.sa_flags = 0; |
|
|
if (sigaction(SIGPIPE, &action, ®istre) != 0) |
if (sigaction(SIGPIPE, &action, ®istre) != 0) |
{ |
{ |
Line 2724 instruction_detach(struct_processus *s_e
|
Line 2727 instruction_detach(struct_processus *s_e
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = GRANULARITE_us * 1000; |
attente.tv_nsec = GRANULARITE_us * 1000; |
|
|
|
pthread_mutex_lock(&((*s_etat_processus).mutex_pile_processus)); |
|
|
while(nombre_thread_surveillance_processus != 0) |
while(nombre_thread_surveillance_processus != 0) |
{ |
{ |
|
pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus)); |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
|
pthread_mutex_lock(&((*s_etat_processus).mutex_pile_processus)); |
} |
} |
|
|
|
pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus)); |
|
|
closelog(); |
closelog(); |
|
|
retrait_thread(s_etat_processus); |
retrait_thread(s_etat_processus); |
Line 2801 instruction_detach(struct_processus *s_e
|
Line 2810 instruction_detach(struct_processus *s_e
|
} |
} |
else |
else |
{ |
{ |
|
deverrouillage_threads_concurrents(s_etat_processus); |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
} |
} |