version 1.207, 2019/02/07 21:44:15
|
version 1.209, 2019/02/11 06:18:21
|
Line 315 rplinit(int argc, char *argv[], char *en
|
Line 315 rplinit(int argc, char *argv[], char *en
|
|
|
# ifndef SEMAPHORES_NOMMES |
# ifndef SEMAPHORES_NOMMES |
sem_init(&((*s_etat_processus).semaphore_fork), 0, 0); |
sem_init(&((*s_etat_processus).semaphore_fork), 0, 0); |
uprintf("[%d-%llu] Semaphore fork %p (rpl.c)\n", (int) getpid(), |
|
(unsigned long long) pthread_self(), |
|
&((*s_etat_processus).semaphore_fork)); |
|
# else |
# else |
if (((*s_etat_processus).semaphore_fork = sem_init3(0, getpid(), |
if (((*s_etat_processus).semaphore_fork = sem_init3(0, getpid(), |
pthread_self(), SEM_FORK)) == SEM_FAILED) |
pthread_self(), SEM_FORK)) == SEM_FAILED) |
Line 5436 uprintf("[%d-%llu] Semaphore fork %p (rp
|
Line 5433 uprintf("[%d-%llu] Semaphore fork %p (rp
|
if ((*s_etat_processus).var_volatile_alarme |
if ((*s_etat_processus).var_volatile_alarme |
!= 0) |
!= 0) |
{ |
{ |
envoi_signal_thread( |
envoi_signal_thread(s_etat_processus, |
(*(*((struct_processus_fils *) |
(*(*((struct_processus_fils *) |
(*(*((struct_liste_chainee *) |
(*(*((struct_liste_chainee *) |
l_element_courant)).donnee).objet)) |
l_element_courant)).donnee).objet)) |
Line 5447 uprintf("[%d-%llu] Semaphore fork %p (rp
|
Line 5444 uprintf("[%d-%llu] Semaphore fork %p (rp
|
if ((*s_etat_processus).arret_depuis_abort |
if ((*s_etat_processus).arret_depuis_abort |
== -1) |
== -1) |
{ |
{ |
envoi_signal_thread( |
envoi_signal_thread(s_etat_processus, |
(*(*((struct_processus_fils *) |
(*(*((struct_processus_fils *) |
(*(*((struct_liste_chainee *) |
(*(*((struct_liste_chainee *) |
l_element_courant)).donnee) |
l_element_courant)).donnee) |
Line 5456 uprintf("[%d-%llu] Semaphore fork %p (rp
|
Line 5453 uprintf("[%d-%llu] Semaphore fork %p (rp
|
} |
} |
else |
else |
{ |
{ |
envoi_signal_thread( |
envoi_signal_thread(s_etat_processus, |
(*(*((struct_processus_fils *) |
(*(*((struct_processus_fils *) |
(*(*((struct_liste_chainee *) |
(*(*((struct_liste_chainee *) |
l_element_courant)).donnee) |
l_element_courant)).donnee) |
Line 6113 uprintf("[%d-%llu] Semaphore fork %p (rp
|
Line 6110 uprintf("[%d-%llu] Semaphore fork %p (rp
|
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)); |
|
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = GRANULARITE_us * 1000; |
attente.tv_nsec = GRANULARITE_us * 1000; |
|
|