version 1.143, 2013/05/22 09:05:20
|
version 1.147, 2013/06/21 14:15:57
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.14 |
RPL/2 (R) version 4.1.15 |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 260 rplinit(int argc, char *argv[], char *en
|
Line 260 rplinit(int argc, char *argv[], char *en
|
|
|
pthread_mutexattr_init(&attributs_mutex); |
pthread_mutexattr_init(&attributs_mutex); |
pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); |
pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); |
pthread_mutex_init(&((*s_etat_processus).mutex), &attributs_mutex); |
pthread_mutex_init(&((*s_etat_processus).mutex_pile_processus), |
|
&attributs_mutex); |
|
pthread_mutexattr_destroy(&attributs_mutex); |
|
|
|
pthread_mutexattr_init(&attributs_mutex); |
|
pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); |
|
pthread_mutex_init(&((*s_etat_processus).mutex_interruptions), |
|
&attributs_mutex); |
|
pthread_mutexattr_destroy(&attributs_mutex); |
|
|
|
pthread_mutexattr_init(&attributs_mutex); |
|
pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); |
|
pthread_mutex_init(&((*s_etat_processus).mutex_signaux), |
|
&attributs_mutex); |
pthread_mutexattr_destroy(&attributs_mutex); |
pthread_mutexattr_destroy(&attributs_mutex); |
|
|
pthread_mutexattr_init(&attributs_mutex); |
pthread_mutexattr_init(&attributs_mutex); |
Line 5372 rplinit(int argc, char *argv[], char *en
|
Line 5385 rplinit(int argc, char *argv[], char *en
|
pthread_cancel((*s_etat_processus).thread_fusible); |
pthread_cancel((*s_etat_processus).thread_fusible); |
} |
} |
|
|
pthread_mutex_lock(&((*s_etat_processus).mutex)); |
pthread_mutex_lock(&((*s_etat_processus) |
|
.mutex_pile_processus)); |
|
|
l_element_courant = (void *) (*s_etat_processus) |
l_element_courant = (void *) (*s_etat_processus) |
.l_base_pile_processus; |
.l_base_pile_processus; |
Line 5608 rplinit(int argc, char *argv[], char *en
|
Line 5622 rplinit(int argc, char *argv[], char *en
|
} |
} |
# endif |
# endif |
|
|
pthread_mutex_unlock( |
pthread_mutex_unlock(&((*s_etat_processus) |
&((*s_etat_processus).mutex)); |
.mutex_pile_processus)); |
return(EXIT_FAILURE); |
return(EXIT_FAILURE); |
} |
} |
|
|
Line 5671 rplinit(int argc, char *argv[], char *en
|
Line 5685 rplinit(int argc, char *argv[], char *en
|
} |
} |
# endif |
# endif |
|
|
pthread_mutex_unlock( |
pthread_mutex_unlock(&((*s_etat_processus) |
&((*s_etat_processus).mutex)); |
.mutex_pile_processus)); |
return(EXIT_FAILURE); |
return(EXIT_FAILURE); |
} |
} |
} |
} |
} |
} |
|
|
pthread_mutex_unlock(&((*s_etat_processus).mutex)); |
pthread_mutex_lock(&((*s_etat_processus) |
|
.mutex_interruptions)); |
|
|
if ((*s_etat_processus) |
if ((*s_etat_processus) |
.nombre_interruptions_non_affectees != 0) |
.nombre_interruptions_non_affectees != 0) |
Line 5687 rplinit(int argc, char *argv[], char *en
|
Line 5702 rplinit(int argc, char *argv[], char *en
|
s_etat_processus); |
s_etat_processus); |
} |
} |
|
|
|
pthread_mutex_unlock(&((*s_etat_processus) |
|
.mutex_interruptions)); |
|
pthread_mutex_unlock(&((*s_etat_processus) |
|
.mutex_pile_processus)); |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
scrutation_interruptions(s_etat_processus); |
scrutation_interruptions(s_etat_processus); |
pthread_mutex_lock(&((*s_etat_processus).mutex)); |
pthread_mutex_lock(&((*s_etat_processus) |
|
.mutex_pile_processus)); |
} |
} |
|
|
pthread_mutex_unlock(&((*s_etat_processus).mutex)); |
pthread_mutex_unlock(&((*s_etat_processus) |
|
.mutex_pile_processus)); |
|
|
erreur_historique = write_history( |
erreur_historique = write_history( |
(*s_etat_processus).nom_fichier_historique); |
(*s_etat_processus).nom_fichier_historique); |
Line 6205 rplinit(int argc, char *argv[], char *en
|
Line 6226 rplinit(int argc, char *argv[], char *en
|
|
|
retrait_thread(s_etat_processus); |
retrait_thread(s_etat_processus); |
|
|
pthread_mutex_destroy(&((*s_etat_processus).mutex)); |
pthread_mutex_destroy(&((*s_etat_processus).mutex_pile_processus)); |
pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation)); |
pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation)); |
|
pthread_mutex_destroy(&((*s_etat_processus).mutex_interruptions)); |
|
pthread_mutex_destroy(&((*s_etat_processus).mutex_signaux)); |
pthread_mutex_destroy(&mutex_sections_critiques); |
pthread_mutex_destroy(&mutex_sections_critiques); |
pthread_mutex_destroy(&mutex_liste_variables_partagees); |
pthread_mutex_destroy(&mutex_liste_variables_partagees); |
|
|