version 1.66, 2011/09/14 14:34:28
|
version 1.67, 2011/09/14 17:55:59
|
Line 2801 copie_etat_processus(struct_processus *s
|
Line 2801 copie_etat_processus(struct_processus *s
|
* n'ont aucune raison de changer. |
* n'ont aucune raison de changer. |
*/ |
*/ |
|
|
# ifndef SEMAPHORES_NOMMES |
pthread_mutexattr_init(&attributs_mutex); |
sem_init(&((*s_nouvel_etat_processus).semaphore_fork), 0, 0); |
pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); |
# else |
pthread_mutex_init(&((*s_nouvel_etat_processus).mutex_fork), |
if (((*s_nouvel_etat_processus).semaphore_fork = sem_init2(0, sem_fork)) |
&attributs_mutex); |
== SEM_FAILED) |
pthread_mutexattr_destroy(&attributs_mutex); |
{ |
pthread_mutex_lock(&((*s_nouvel_etat_processus).mutex_fork)); |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
|
return(NULL); |
|
} |
|
# endif |
|
|
|
initialisation_contexte_cas(s_etat_processus); |
initialisation_contexte_cas(s_etat_processus); |
|
|
Line 3939 debug_fork()
|
Line 3935 debug_fork()
|
pthread_mutex_lock(&mutex_allocation); |
pthread_mutex_lock(&mutex_allocation); |
pid = fork(); |
pid = fork(); |
|
|
# ifdef OS2 |
|
if (pid == 0) |
|
{ |
|
sem_init(&semaphore_liste_threads, 0, 1); |
|
sem_init(&semaphore_gestionnaires_signaux, 0, 0); |
|
sem_init(&semaphore_gestionnaires_signaux_atomique, 0, 1); |
|
sem_init(&((*s_etat_processus).semaphore_fork), 0, 0); |
|
} |
|
# endif |
|
|
|
if (pid == 0) |
if (pid == 0) |
{ |
{ |
liberation_queue_signaux(s_etat_processus); |
liberation_queue_signaux(s_etat_processus); |