version 1.165, 2016/03/01 22:12:35
|
version 1.167, 2016/03/09 22:12:06
|
Line 109 thread_surveillance_signaux(void *argume
|
Line 109 thread_surveillance_signaux(void *argume
|
sem_post(semaphore_signalisation); |
sem_post(semaphore_signalisation); |
|
|
nombre_signaux_envoyes = 0; |
nombre_signaux_envoyes = 0; |
sched_yield(); |
|
|
|
// Dans un premier temps, on verrouille la queue des signaux |
// Dans un premier temps, on verrouille la queue des signaux |
// affectée au processus courant pour vérifier s'il y a quelque |
// affectée au processus courant pour vérifier s'il y a quelque |
Line 128 thread_surveillance_signaux(void *argume
|
Line 127 thread_surveillance_signaux(void *argume
|
|
|
nombre_signaux_envoyes++; |
nombre_signaux_envoyes++; |
kill(getpid(), SIGALRM); |
kill(getpid(), SIGALRM); |
|
sched_yield(); |
} |
} |
|
|
sem_post(semaphore_queue_signaux); |
sem_post(semaphore_queue_signaux); |
Line 160 thread_surveillance_signaux(void *argume
|
Line 160 thread_surveillance_signaux(void *argume
|
nombre_signaux_envoyes++; |
nombre_signaux_envoyes++; |
pthread_kill((*((struct_thread *) |
pthread_kill((*((struct_thread *) |
(*l_element_courant).donnee)).tid, SIGALRM); |
(*l_element_courant).donnee)).tid, SIGALRM); |
|
sched_yield(); |
} |
} |
|
|
pthread_mutex_unlock(&((*(*((struct_thread *) |
pthread_mutex_unlock(&((*(*((struct_thread *) |
Line 2658 envoi_signal_processus(pid_t pid, enum s
|
Line 2659 envoi_signal_processus(pid_t pid, enum s
|
if (msync(s_queue_signaux, sizeof(s_queue_signaux), |
if (msync(s_queue_signaux, sizeof(s_queue_signaux), |
MS_ASYNC | MS_INVALIDATE) != 0) |
MS_ASYNC | MS_INVALIDATE) != 0) |
{ |
{ |
|
sem_post(semaphore_queue_signaux); |
return(1); |
return(1); |
} |
} |
# endif |
# endif |
Line 3002 creation_queue_signaux(struct_processus
|
Line 3004 creation_queue_signaux(struct_processus
|
|
|
(*s_queue_signaux).requete_arret = d_faux; |
(*s_queue_signaux).requete_arret = d_faux; |
|
|
if (msync(s_queue_signaux, sizeof(struct_queue_signaux), MS_SYNC)) |
if (msync(s_queue_signaux, sizeof(struct_queue_signaux), |
|
MS_ASYNC | MS_INVALIDATE) != 0) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_processus; |
(*s_etat_processus).erreur_systeme = d_es_processus; |
return; |
return; |
Line 3168 creation_queue_signaux(struct_processus
|
Line 3171 creation_queue_signaux(struct_processus
|
} |
} |
|
|
(*s_queue_signaux).controle = getpid(); |
(*s_queue_signaux).controle = getpid(); |
|
|
|
# ifndef IPCS_SYSV |
|
if (msync(s_queue_signaux, sizeof(s_queue_signaux), |
|
MS_ASYNC | MS_INVALIDATE) != 0) |
|
{ |
|
(*s_etat_processus).erreur_systeme = d_es_processus; |
|
return; |
|
} |
|
# endif |
|
|
return; |
return; |
} |
} |
|
|