version 1.124, 2012/10/19 19:05:52
|
version 1.157, 2014/05/17 15:35:51
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.11 |
RPL/2 (R) version 4.1.18 |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
Copyright (C) 1989-2014 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 23
|
Line 23
|
#define MAIN_RPL |
#define MAIN_RPL |
#include "rpl-conv.h" |
#include "rpl-conv.h" |
|
|
|
// Bug de gcc à partir de gcc 4.6 (bug 48544) |
|
#pragma GCC diagnostic push |
|
#pragma GCC diagnostic ignored "-Wclobbered" |
|
|
|
|
/* |
/* |
================================================================================ |
================================================================================ |
Line 51 rplinit(int argc, char *argv[], char *en
|
Line 55 rplinit(int argc, char *argv[], char *en
|
int erreur_historique; |
int erreur_historique; |
int option_P; |
int option_P; |
|
|
|
integer8 i; |
|
|
logical1 core; |
logical1 core; |
logical1 debug; |
logical1 debug; |
logical1 erreur_fichier; |
logical1 erreur_fichier; |
Line 80 rplinit(int argc, char *argv[], char *en
|
Line 86 rplinit(int argc, char *argv[], char *en
|
|
|
struct_processus *s_etat_processus; |
struct_processus *s_etat_processus; |
|
|
|
struct_liste_variables_partagees *l_element_partage_courant; |
|
struct_liste_variables_partagees *l_element_partage_suivant; |
|
|
struct_liste_variables_statiques *l_element_statique_courant; |
struct_liste_variables_statiques *l_element_statique_courant; |
struct_liste_variables_statiques *l_element_statique_suivant; |
struct_liste_variables_statiques *l_element_statique_suivant; |
|
|
struct_table_variables_partagees s_variables_partagees; |
struct_arbre_variables_partagees *s_arbre_variables_partagees; |
|
struct_liste_variables_partagees *l_liste_variables_partagees; |
|
|
struct sigaction action; |
struct sigaction action; |
struct sigaction registre; |
struct sigaction registre; |
Line 102 rplinit(int argc, char *argv[], char *en
|
Line 112 rplinit(int argc, char *argv[], char *en
|
unsigned char *ptr; |
unsigned char *ptr; |
unsigned char *tampon; |
unsigned char *tampon; |
|
|
unsigned long i; |
|
unsigned long unite_fichier; |
unsigned long unite_fichier; |
|
|
void *l_element_courant; |
void *l_element_courant; |
Line 215 rplinit(int argc, char *argv[], char *en
|
Line 224 rplinit(int argc, char *argv[], char *en
|
return(EXIT_FAILURE); |
return(EXIT_FAILURE); |
} |
} |
|
|
if ((arg_exec = malloc((argc + 1) * sizeof(char *))) == NULL) |
if ((arg_exec = malloc((((size_t) argc) + 1) * sizeof(char *))) == NULL) |
{ |
{ |
# ifndef SEMAPHORES_NOMMES |
# ifndef SEMAPHORES_NOMMES |
sem_post(&semaphore_gestionnaires_signaux); |
sem_post(&semaphore_gestionnaires_signaux); |
Line 237 rplinit(int argc, char *argv[], char *en
|
Line 246 rplinit(int argc, char *argv[], char *en
|
return(EXIT_FAILURE); |
return(EXIT_FAILURE); |
} |
} |
|
|
for(i = 0; i < (unsigned long) argc; i++) |
for(i = 0; i < argc; i++) |
{ |
{ |
arg_exec[i] = argv[i]; |
arg_exec[i] = argv[i]; |
} |
} |
Line 255 rplinit(int argc, char *argv[], char *en
|
Line 264 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 269 rplinit(int argc, char *argv[], char *en
|
Line 291 rplinit(int argc, char *argv[], char *en
|
pthread_mutex_init(&mutex_sections_critiques, &attributs_mutex); |
pthread_mutex_init(&mutex_sections_critiques, &attributs_mutex); |
pthread_mutexattr_destroy(&attributs_mutex); |
pthread_mutexattr_destroy(&attributs_mutex); |
|
|
|
pthread_mutexattr_init(&attributs_mutex); |
|
pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_RECURSIVE); |
|
pthread_mutex_init(&mutex_liste_variables_partagees, &attributs_mutex); |
|
pthread_mutexattr_destroy(&attributs_mutex); |
|
|
# ifndef SEMAPHORES_NOMMES |
# ifndef SEMAPHORES_NOMMES |
sem_init(&((*s_etat_processus).semaphore_fork), 0, 0); |
sem_init(&((*s_etat_processus).semaphore_fork), 0, 0); |
# 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) |
{ |
{ |
# ifndef SEMAPHORES_NOMMES |
sem_post(semaphore_gestionnaires_signaux); |
sem_post(&semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy(&semaphore_gestionnaires_signaux); |
SEM_SIGNAUX); |
# else |
|
sem_post(semaphore_gestionnaires_signaux); |
|
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
|
SEM_SIGNAUX); |
|
# endif |
|
|
|
liberation(contexte_cas(s_etat_processus); |
liberation_contexte_cas(s_etat_processus); |
|
|
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
Line 305 rplinit(int argc, char *argv[], char *en
|
Line 327 rplinit(int argc, char *argv[], char *en
|
&attributs_mutex); |
&attributs_mutex); |
pthread_mutexattr_destroy(&attributs_mutex); |
pthread_mutexattr_destroy(&attributs_mutex); |
|
|
(*s_etat_processus).s_liste_variables_partagees = &s_variables_partagees; |
|
|
|
s_variables_partagees.nombre_variables = 0; |
|
s_variables_partagees.nombre_variables_allouees = 0; |
|
s_variables_partagees.table = NULL; |
|
|
|
pthread_mutexattr_init(&attributs_mutex); |
|
pthread_mutexattr_settype(&attributs_mutex, PTHREAD_MUTEX_NORMAL); |
|
pthread_mutex_init(&((*((*s_etat_processus).s_liste_variables_partagees)) |
|
.mutex), &attributs_mutex); |
|
pthread_mutexattr_destroy(&attributs_mutex); |
|
|
|
(*s_etat_processus).chemin_fichiers_temporaires = |
(*s_etat_processus).chemin_fichiers_temporaires = |
recherche_chemin_fichiers_temporaires(s_etat_processus); |
recherche_chemin_fichiers_temporaires(s_etat_processus); |
|
|
Line 335 rplinit(int argc, char *argv[], char *en
|
Line 345 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 359 rplinit(int argc, char *argv[], char *en
|
Line 369 rplinit(int argc, char *argv[], char *en
|
} |
} |
else |
else |
{ |
{ |
# ifndef SEMAPHORES_NOMMES |
|
sem_post(&((*s_etat_processus).semaphore_fork)); |
|
sem_post(&semaphore_gestionnaires_signaux); |
|
sem_destroy(&semaphore_gestionnaires_signaux); |
|
sem_destroy(&((*s_etat_processus).semaphore_fork)); |
|
# else |
|
sem_post((*s_etat_processus).semaphore_fork); |
|
sem_post(semaphore_gestionnaires_signaux); |
|
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
|
SEM_SIGNAUX); |
|
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
|
pthread_self(), SEM_FORK); |
|
# endif |
|
|
|
liberation_contexte_cas(s_etat_processus); |
|
liberation_queue_signaux(s_etat_processus); |
|
|
|
if (((*s_etat_processus).localisation = malloc((strlen(d_locale) |
if (((*s_etat_processus).localisation = malloc((strlen(d_locale) |
+ 1) * sizeof(unsigned char))) == NULL) |
+ 1) * sizeof(unsigned char))) == NULL) |
{ |
{ |
|
# ifndef SEMAPHORES_NOMMES |
|
sem_post(&((*s_etat_processus).semaphore_fork)); |
|
sem_post(&semaphore_gestionnaires_signaux); |
|
sem_destroy(&semaphore_gestionnaires_signaux); |
|
sem_destroy(&((*s_etat_processus).semaphore_fork)); |
|
# else |
|
sem_post((*s_etat_processus).semaphore_fork); |
|
sem_post(semaphore_gestionnaires_signaux); |
|
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
|
SEM_SIGNAUX); |
|
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
|
pthread_self(), SEM_FORK); |
|
# endif |
|
|
|
liberation_contexte_cas(s_etat_processus); |
|
liberation_queue_signaux(s_etat_processus); |
|
|
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
uprintf("+++Système : Mémoire insuffisante\n"); |
uprintf("+++Système : Mémoire insuffisante\n"); |
Line 411 rplinit(int argc, char *argv[], char *en
|
Line 421 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 433 rplinit(int argc, char *argv[], char *en
|
Line 443 rplinit(int argc, char *argv[], char *en
|
strcpy((*s_etat_processus).localisation, d_locale); |
strcpy((*s_etat_processus).localisation, d_locale); |
} |
} |
|
|
printf("+++RPL/2 (R) version %s (%s)\n", d_version_rpl, |
if (resultats == NULL) // Appel direct |
((*s_etat_processus).langue == 'F') ? d_date_rpl : d_date_en_rpl); |
|
|
|
if ((*s_etat_processus).langue == 'F') |
|
{ |
{ |
printf("+++Copyright (C) 1989 à 2011, 2012 BERTRAND Joël\n"); |
printf("+++RPL/2 (R) version %s (%s)\n", d_version_rpl, |
} |
((*s_etat_processus).langue == 'F') |
else |
? d_date_rpl : d_date_en_rpl); |
{ |
|
printf("+++Copyright (C) 1989 to 2011, 2012 BERTRAND Joel\n"); |
if ((*s_etat_processus).langue == 'F') |
|
{ |
|
printf("+++Copyright (C) 1989 à 2013, 2014 BERTRAND Joël\n"); |
|
} |
|
else |
|
{ |
|
printf("+++Copyright (C) 1989 to 2013, 2014 BERTRAND Joel\n"); |
|
} |
} |
} |
|
|
if (getenv("HOME") != NULL) |
if (getenv("HOME") != NULL) |
Line 481 rplinit(int argc, char *argv[], char *en
|
Line 495 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 528 rplinit(int argc, char *argv[], char *en
|
Line 542 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 569 rplinit(int argc, char *argv[], char *en
|
Line 583 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 596 rplinit(int argc, char *argv[], char *en
|
Line 610 rplinit(int argc, char *argv[], char *en
|
} |
} |
|
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGINT); |
raise(SIGINT); |
|
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = 1000000; |
attente.tv_nsec = 1000000; |
Line 618 rplinit(int argc, char *argv[], char *en
|
Line 632 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 656 rplinit(int argc, char *argv[], char *en
|
Line 670 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 683 rplinit(int argc, char *argv[], char *en
|
Line 697 rplinit(int argc, char *argv[], char *en
|
} |
} |
|
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGTERM); |
raise(SIGTERM); |
|
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = 1000000; |
attente.tv_nsec = 1000000; |
Line 705 rplinit(int argc, char *argv[], char *en
|
Line 719 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 743 rplinit(int argc, char *argv[], char *en
|
Line 757 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 770 rplinit(int argc, char *argv[], char *en
|
Line 784 rplinit(int argc, char *argv[], char *en
|
} |
} |
|
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGALRM); |
raise(SIGALRM); |
|
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = 1000000; |
attente.tv_nsec = 1000000; |
Line 792 rplinit(int argc, char *argv[], char *en
|
Line 806 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 833 rplinit(int argc, char *argv[], char *en
|
Line 847 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 858 rplinit(int argc, char *argv[], char *en
|
Line 872 rplinit(int argc, char *argv[], char *en
|
} |
} |
|
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGTSTP); |
raise(SIGTSTP); |
|
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = 1000000; |
attente.tv_nsec = 1000000; |
Line 880 rplinit(int argc, char *argv[], char *en
|
Line 894 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 921 rplinit(int argc, char *argv[], char *en
|
Line 935 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 948 rplinit(int argc, char *argv[], char *en
|
Line 962 rplinit(int argc, char *argv[], char *en
|
} |
} |
|
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGPIPE); |
raise(SIGPIPE); |
|
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = 1000000; |
attente.tv_nsec = 1000000; |
Line 970 rplinit(int argc, char *argv[], char *en
|
Line 984 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1011 rplinit(int argc, char *argv[], char *en
|
Line 1025 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1038 rplinit(int argc, char *argv[], char *en
|
Line 1052 rplinit(int argc, char *argv[], char *en
|
} |
} |
|
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGUSR1); |
raise(SIGUSR1); |
|
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = 1000000; |
attente.tv_nsec = 1000000; |
Line 1060 rplinit(int argc, char *argv[], char *en
|
Line 1074 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
sem_destroy2(semaphore_gestionnaires_signaux, getpid(), |
SEM_SIGNAUX); |
SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, getpid(), |
sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1166 rplinit(int argc, char *argv[], char *en
|
Line 1180 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1210 rplinit(int argc, char *argv[], char *en
|
Line 1224 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1261 rplinit(int argc, char *argv[], char *en
|
Line 1275 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1324 rplinit(int argc, char *argv[], char *en
|
Line 1338 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1377 rplinit(int argc, char *argv[], char *en
|
Line 1391 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1420 rplinit(int argc, char *argv[], char *en
|
Line 1434 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1465 rplinit(int argc, char *argv[], char *en
|
Line 1479 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1510 rplinit(int argc, char *argv[], char *en
|
Line 1524 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1554 rplinit(int argc, char *argv[], char *en
|
Line 1568 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1599 rplinit(int argc, char *argv[], char *en
|
Line 1613 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1636 rplinit(int argc, char *argv[], char *en
|
Line 1650 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1673 rplinit(int argc, char *argv[], char *en
|
Line 1687 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1719 rplinit(int argc, char *argv[], char *en
|
Line 1733 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1773 rplinit(int argc, char *argv[], char *en
|
Line 1787 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1818 rplinit(int argc, char *argv[], char *en
|
Line 1832 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1855 rplinit(int argc, char *argv[], char *en
|
Line 1869 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1900 rplinit(int argc, char *argv[], char *en
|
Line 1914 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1945 rplinit(int argc, char *argv[], char *en
|
Line 1959 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 1990 rplinit(int argc, char *argv[], char *en
|
Line 2004 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2027 rplinit(int argc, char *argv[], char *en
|
Line 2041 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2079 rplinit(int argc, char *argv[], char *en
|
Line 2093 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2140 rplinit(int argc, char *argv[], char *en
|
Line 2154 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2190 rplinit(int argc, char *argv[], char *en
|
Line 2204 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2230 rplinit(int argc, char *argv[], char *en
|
Line 2244 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2256 rplinit(int argc, char *argv[], char *en
|
Line 2270 rplinit(int argc, char *argv[], char *en
|
} |
} |
|
|
(*s_etat_processus).longueur_definitions_chainees = |
(*s_etat_processus).longueur_definitions_chainees = |
strlen((*s_etat_processus) |
(integer8) strlen((*s_etat_processus) |
.definitions_chainees); |
.definitions_chainees); |
|
|
break; |
break; |
Line 2277 rplinit(int argc, char *argv[], char *en
|
Line 2291 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2329 rplinit(int argc, char *argv[], char *en
|
Line 2343 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2390 rplinit(int argc, char *argv[], char *en
|
Line 2404 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2439 rplinit(int argc, char *argv[], char *en
|
Line 2453 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2514 rplinit(int argc, char *argv[], char *en
|
Line 2528 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2561 rplinit(int argc, char *argv[], char *en
|
Line 2575 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2605 rplinit(int argc, char *argv[], char *en
|
Line 2619 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2734 rplinit(int argc, char *argv[], char *en
|
Line 2748 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2777 rplinit(int argc, char *argv[], char *en
|
Line 2791 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2803 rplinit(int argc, char *argv[], char *en
|
Line 2817 rplinit(int argc, char *argv[], char *en
|
} |
} |
|
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGSEGV); |
raise(SIGSEGV); |
|
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = 1000000; |
attente.tv_nsec = 1000000; |
Line 2826 rplinit(int argc, char *argv[], char *en
|
Line 2840 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2870 rplinit(int argc, char *argv[], char *en
|
Line 2884 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2903 rplinit(int argc, char *argv[], char *en
|
Line 2917 rplinit(int argc, char *argv[], char *en
|
} |
} |
|
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGBUS); |
raise(SIGBUS); |
|
|
attente.tv_sec = 0; |
attente.tv_sec = 0; |
attente.tv_nsec = 1000000; |
attente.tv_nsec = 1000000; |
Line 2926 rplinit(int argc, char *argv[], char *en
|
Line 2940 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 2980 rplinit(int argc, char *argv[], char *en
|
Line 2994 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3051 rplinit(int argc, char *argv[], char *en
|
Line 3065 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3095 rplinit(int argc, char *argv[], char *en
|
Line 3109 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3138 rplinit(int argc, char *argv[], char *en
|
Line 3152 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3182 rplinit(int argc, char *argv[], char *en
|
Line 3196 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3225 rplinit(int argc, char *argv[], char *en
|
Line 3239 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3290 rplinit(int argc, char *argv[], char *en
|
Line 3304 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3350 rplinit(int argc, char *argv[], char *en
|
Line 3364 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3406 rplinit(int argc, char *argv[], char *en
|
Line 3420 rplinit(int argc, char *argv[], char *en
|
|
|
(*s_etat_processus).liste_mutexes = NULL; |
(*s_etat_processus).liste_mutexes = NULL; |
(*s_etat_processus).sections_critiques = 0; |
(*s_etat_processus).sections_critiques = 0; |
|
(*s_etat_processus).initialisation_scheduler = d_faux; |
|
|
(*s_etat_processus).test_instruction = 'N'; |
(*s_etat_processus).test_instruction = 'N'; |
(*s_etat_processus).nombre_arguments = 0; |
(*s_etat_processus).nombre_arguments = 0; |
Line 3439 rplinit(int argc, char *argv[], char *en
|
Line 3454 rplinit(int argc, char *argv[], char *en
|
|
|
(*s_etat_processus).s_arbre_variables = NULL; |
(*s_etat_processus).s_arbre_variables = NULL; |
(*s_etat_processus).l_liste_variables_par_niveau = NULL; |
(*s_etat_processus).l_liste_variables_par_niveau = NULL; |
|
(*s_etat_processus).l_liste_variables_statiques = NULL; |
(*s_etat_processus).gel_liste_variables = d_faux; |
(*s_etat_processus).gel_liste_variables = d_faux; |
|
s_arbre_variables_partagees = NULL; |
|
l_liste_variables_partagees = NULL; |
|
(*s_etat_processus).s_arbre_variables_partagees = |
|
&s_arbre_variables_partagees; |
|
(*s_etat_processus).l_liste_variables_partagees = |
|
&l_liste_variables_partagees; |
(*s_etat_processus).pointeur_variable_courante = NULL; |
(*s_etat_processus).pointeur_variable_courante = NULL; |
(*s_etat_processus).pointeur_variable_statique_courante = NULL; |
(*s_etat_processus).pointeur_variable_statique_courante = NULL; |
(*s_etat_processus).l_liste_variables_statiques = NULL; |
(*s_etat_processus).pointeur_variable_partagee_courante = NULL; |
(*s_etat_processus).niveau_courant = 0; |
(*s_etat_processus).niveau_courant = 0; |
(*s_etat_processus).niveau_initial = 0; |
(*s_etat_processus).niveau_initial = 0; |
(*s_etat_processus).creation_variables_statiques = d_faux; |
(*s_etat_processus).creation_variables_statiques = d_faux; |
Line 3609 rplinit(int argc, char *argv[], char *en
|
Line 3631 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3652 rplinit(int argc, char *argv[], char *en
|
Line 3674 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3709 rplinit(int argc, char *argv[], char *en
|
Line 3731 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3799 rplinit(int argc, char *argv[], char *en
|
Line 3821 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3851 rplinit(int argc, char *argv[], char *en
|
Line 3873 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3931 rplinit(int argc, char *argv[], char *en
|
Line 3953 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 3987 rplinit(int argc, char *argv[], char *en
|
Line 4009 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4084 rplinit(int argc, char *argv[], char *en
|
Line 4106 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4143 rplinit(int argc, char *argv[], char *en
|
Line 4165 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4230 rplinit(int argc, char *argv[], char *en
|
Line 4252 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4278 rplinit(int argc, char *argv[], char *en
|
Line 4300 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4327 rplinit(int argc, char *argv[], char *en
|
Line 4349 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4375 rplinit(int argc, char *argv[], char *en
|
Line 4397 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4428 rplinit(int argc, char *argv[], char *en
|
Line 4450 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4478 rplinit(int argc, char *argv[], char *en
|
Line 4500 rplinit(int argc, char *argv[], char *en
|
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es; |
(*s_etat_processus).erreur_systeme = d_es; |
encart(s_etat_processus, |
encart(s_etat_processus, |
(unsigned long) (5 * 1000000)); |
(integer8) (5 * 1000000)); |
|
|
if ((*s_etat_processus).erreur_systeme != d_es) |
if ((*s_etat_processus).erreur_systeme != d_es) |
{ |
{ |
Line 4501 rplinit(int argc, char *argv[], char *en
|
Line 4523 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, |
.semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4571 rplinit(int argc, char *argv[], char *en
|
Line 4593 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, |
.semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4622 rplinit(int argc, char *argv[], char *en
|
Line 4644 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, |
.semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4674 rplinit(int argc, char *argv[], char *en
|
Line 4696 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4738 rplinit(int argc, char *argv[], char *en
|
Line 4760 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, |
.semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4786 rplinit(int argc, char *argv[], char *en
|
Line 4808 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4830 rplinit(int argc, char *argv[], char *en
|
Line 4852 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, |
.semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4879 rplinit(int argc, char *argv[], char *en
|
Line 4901 rplinit(int argc, char *argv[], char *en
|
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, |
sem_destroy2(semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus).semphore_fork, |
sem_destroy3((*s_etat_processus).semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4900 rplinit(int argc, char *argv[], char *en
|
Line 4922 rplinit(int argc, char *argv[], char *en
|
return(EXIT_FAILURE); |
return(EXIT_FAILURE); |
} |
} |
|
|
|
empilement_pile_systeme(s_etat_processus); |
|
|
if (evaluation(s_etat_processus, s_objet, 'E') |
if (evaluation(s_etat_processus, s_objet, 'E') |
== d_erreur) |
== d_erreur) |
{ |
{ |
Line 4929 rplinit(int argc, char *argv[], char *en
|
Line 4953 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 4983 rplinit(int argc, char *argv[], char *en
|
Line 5007 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, |
.semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 5032 rplinit(int argc, char *argv[], char *en
|
Line 5056 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 5086 rplinit(int argc, char *argv[], char *en
|
Line 5110 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, |
.semaphore_fork, |
getpid(), pthread_self(), SEM_FORK); |
getpid(), pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 5134 rplinit(int argc, char *argv[], char *en
|
Line 5158 rplinit(int argc, char *argv[], char *en
|
|
|
if (erreur == d_absence_erreur) |
if (erreur == d_absence_erreur) |
{ |
{ |
if (((*s_etat_processus).var_volatile_alarme |
if (((*s_etat_processus) |
== 0) && ((*s_etat_processus) |
|
.arret_depuis_abort == 0) && |
.arret_depuis_abort == 0) && |
((*s_etat_processus).at_exit |
((*s_etat_processus).at_exit |
!= NULL)) |
!= NULL)) |
{ |
{ |
|
// Permet de traiter ATEXIT |
|
// même après réception d'un SIGINT. |
|
(*s_etat_processus) |
|
.var_volatile_alarme = 0; |
|
(*s_etat_processus) |
|
.var_volatile_requete_arret = 0; |
|
|
|
if ((*s_etat_processus).profilage == |
|
d_vrai) |
|
{ |
|
profilage(s_etat_processus, |
|
"ATEXIT"); |
|
} |
|
|
erreur = evaluation(s_etat_processus, |
erreur = evaluation(s_etat_processus, |
(*s_etat_processus).at_exit, |
(*s_etat_processus).at_exit, |
'E'); |
'E'); |
|
|
|
if ((*s_etat_processus).profilage == |
|
d_vrai) |
|
{ |
|
profilage(s_etat_processus, NULL); |
|
} |
|
|
|
if (((*s_etat_processus) |
|
.erreur_execution != d_ex) || |
|
((*s_etat_processus).exception |
|
!= d_ep) || ((*s_etat_processus) |
|
.erreur_systeme != d_es)) |
|
{ |
|
printf("%s [%d]\n", message = |
|
messages(s_etat_processus), |
|
(int) getpid()); |
|
free(message); |
|
|
|
if (test_cfsf(s_etat_processus, 51) |
|
== d_faux) |
|
{ |
|
printf("%s", ds_beep); |
|
} |
|
|
|
if ((*s_etat_processus).core == |
|
d_vrai) |
|
{ |
|
printf("\n"); |
|
|
|
if ((*s_etat_processus).langue |
|
== 'F') |
|
{ |
|
printf("+++Information : Gé" |
|
"nération du fichie" |
|
"r rpl-core " |
|
"[%d]\n", (int) |
|
getpid()); |
|
} |
|
else |
|
{ |
|
printf("+++Information : Wr" |
|
"iting rpl-core fil" |
|
"e [%d]\n", |
|
(int) getpid()); |
|
} |
|
|
|
rplcore(s_etat_processus); |
|
|
|
if ((*s_etat_processus).langue |
|
== 'F') |
|
{ |
|
printf("+++Information : Pr" |
|
"ocessus tracé [%d]" |
|
"\n", |
|
(int) getpid()); |
|
} |
|
else |
|
{ |
|
printf("+++Information : Do" |
|
"ne [%d]\n", (int) |
|
getpid()); |
|
} |
|
|
|
printf("\n"); |
|
fflush(stdout); |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
Line 5155 rplinit(int argc, char *argv[], char *en
|
Line 5259 rplinit(int argc, char *argv[], char *en
|
|
|
if (erreur == d_absence_erreur) |
if (erreur == d_absence_erreur) |
{ |
{ |
if (((*s_etat_processus).var_volatile_alarme |
if (((*s_etat_processus) |
== 0) && ((*s_etat_processus) |
|
.arret_depuis_abort == 0) && |
.arret_depuis_abort == 0) && |
((*s_etat_processus).at_exit |
((*s_etat_processus).at_exit |
!= NULL)) |
!= NULL)) |
{ |
{ |
|
// Permet de traiter ATEXIT |
|
// même après réception d'un SIGINT. |
|
(*s_etat_processus) |
|
.var_volatile_alarme = 0; |
|
(*s_etat_processus) |
|
.var_volatile_requete_arret = 0; |
|
|
|
if ((*s_etat_processus).profilage == |
|
d_vrai) |
|
{ |
|
profilage(s_etat_processus, |
|
"ATEXIT"); |
|
} |
|
|
erreur = evaluation(s_etat_processus, |
erreur = evaluation(s_etat_processus, |
(*s_etat_processus).at_exit, |
(*s_etat_processus).at_exit, |
'E'); |
'E'); |
|
|
|
if ((*s_etat_processus).profilage == |
|
d_vrai) |
|
{ |
|
profilage(s_etat_processus, NULL); |
|
} |
|
|
|
if (((*s_etat_processus) |
|
.erreur_execution != d_ex) || |
|
((*s_etat_processus).exception |
|
!= d_ep) || ((*s_etat_processus) |
|
.erreur_systeme != d_es)) |
|
{ |
|
printf("%s [%d]\n", message = |
|
messages(s_etat_processus), |
|
(int) getpid()); |
|
free(message); |
|
|
|
if (test_cfsf(s_etat_processus, 51) |
|
== d_faux) |
|
{ |
|
printf("%s", ds_beep); |
|
} |
|
|
|
if ((*s_etat_processus).core == |
|
d_vrai) |
|
{ |
|
printf("\n"); |
|
|
|
if ((*s_etat_processus).langue |
|
== 'F') |
|
{ |
|
printf("+++Information : Gé" |
|
"nération du fichie" |
|
"r rpl-core " |
|
"[%d]\n", (int) |
|
getpid()); |
|
} |
|
else |
|
{ |
|
printf("+++Information : Wr" |
|
"iting rpl-core fil" |
|
"e [%d]\n", |
|
(int) getpid()); |
|
} |
|
|
|
rplcore(s_etat_processus); |
|
|
|
if ((*s_etat_processus).langue |
|
== 'F') |
|
{ |
|
printf("+++Information : Pr" |
|
"ocessus tracé [%d]" |
|
"\n", |
|
(int) getpid()); |
|
} |
|
else |
|
{ |
|
printf("+++Information : Do" |
|
"ne [%d]\n", (int) |
|
getpid()); |
|
} |
|
|
|
printf("\n"); |
|
fflush(stdout); |
|
} |
|
} |
} |
} |
} |
} |
} |
} |
Line 5204 rplinit(int argc, char *argv[], char *en
|
Line 5388 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 5376 rplinit(int argc, char *argv[], char *en
|
Line 5561 rplinit(int argc, char *argv[], char *en
|
l_element_courant = (void *) |
l_element_courant = (void *) |
(*s_etat_processus).l_base_pile_processus; |
(*s_etat_processus).l_base_pile_processus; |
|
|
for(i = 0; i < (unsigned long) |
for(i = 0; i < (*(*((struct_processus_fils *) |
(*(*((struct_processus_fils *) |
|
(*(*((struct_liste_chainee *) |
(*(*((struct_liste_chainee *) |
l_element_courant)).donnee).objet)).thread) |
l_element_courant)).donnee).objet)).thread) |
.nombre_objets_dans_pipe; i++) |
.nombre_objets_dans_pipe; i++) |
Line 5423 rplinit(int argc, char *argv[], char *en
|
Line 5607 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 5441 rplinit(int argc, char *argv[], char *en
|
Line 5625 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 5486 rplinit(int argc, char *argv[], char *en
|
Line 5670 rplinit(int argc, char *argv[], char *en
|
semaphore_gestionnaires_signaux, |
semaphore_gestionnaires_signaux, |
getpid(), SEM_SIGNAUX); |
getpid(), SEM_SIGNAUX); |
sem_destroy3((*s_etat_processus) |
sem_destroy3((*s_etat_processus) |
.semphore_fork, getpid(), |
.semaphore_fork, getpid(), |
pthread_self(), SEM_FORK); |
pthread_self(), SEM_FORK); |
# endif |
# endif |
|
|
Line 5504 rplinit(int argc, char *argv[], char *en
|
Line 5688 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 5520 rplinit(int argc, char *argv[], char *en
|
Line 5705 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 5675 rplinit(int argc, char *argv[], char *en
|
Line 5866 rplinit(int argc, char *argv[], char *en
|
* le libérer... |
* le libérer... |
*/ |
*/ |
|
|
|
liberation_arbre_variables_partagees(s_etat_processus, |
|
(*(*s_etat_processus).s_arbre_variables_partagees)); |
liberation_arbre_variables(s_etat_processus, |
liberation_arbre_variables(s_etat_processus, |
(*s_etat_processus).s_arbre_variables, d_vrai); |
(*s_etat_processus).s_arbre_variables, d_vrai); |
free((*s_etat_processus).pointeurs_caracteres_variables); |
free((*s_etat_processus).pointeurs_caracteres_variables); |
Line 5690 rplinit(int argc, char *argv[], char *en
|
Line 5883 rplinit(int argc, char *argv[], char *en
|
l_element_statique_courant = l_element_statique_suivant; |
l_element_statique_courant = l_element_statique_suivant; |
} |
} |
|
|
for(i = 0; i < (*((*s_etat_processus) |
l_element_partage_courant = (*(*s_etat_processus) |
.s_liste_variables_partagees)).nombre_variables; |
.l_liste_variables_partagees); |
i++) |
|
{ |
|
liberation(s_etat_processus, (*((*s_etat_processus) |
|
.s_liste_variables_partagees)).table[i].objet); |
|
free((*((*s_etat_processus) |
|
.s_liste_variables_partagees)).table[i].nom); |
|
} |
|
|
|
free((struct_variable_partagee *) |
while(l_element_partage_courant != NULL) |
(*((*s_etat_processus).s_liste_variables_partagees)) |
{ |
.table); |
l_element_partage_suivant = |
|
(*l_element_partage_courant).suivant; |
|
free(l_element_partage_courant); |
|
l_element_partage_courant = l_element_partage_suivant; |
|
} |
|
|
/* |
/* |
* Si resultats est non nul, rplinit a été appelé |
* Si resultats est non nul, rplinit a été appelé |
Line 5718 rplinit(int argc, char *argv[], char *en
|
Line 5908 rplinit(int argc, char *argv[], char *en
|
{ |
{ |
free((*resultats)); |
free((*resultats)); |
|
|
if (((*resultats) = malloc(((*s_etat_processus) |
if (((*resultats) = malloc(((size_t) |
.hauteur_pile_operationnelle + 1) |
((*s_etat_processus) |
|
.hauteur_pile_operationnelle + 1)) |
* sizeof(unsigned char **))) != NULL) |
* sizeof(unsigned char **))) != NULL) |
{ |
{ |
(*resultats)[(*s_etat_processus) |
(*resultats)[(*s_etat_processus) |
Line 6035 rplinit(int argc, char *argv[], char *en
|
Line 6226 rplinit(int argc, char *argv[], char *en
|
closelog(); |
closelog(); |
|
|
pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes)); |
pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes)); |
pthread_mutex_destroy(&((*((*s_etat_processus).s_liste_variables_partagees)) |
|
.mutex)); |
|
|
|
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); |
|
|
# ifndef SEMAPHORES_NOMMES |
# ifndef SEMAPHORES_NOMMES |
sem_post(&((*s_etat_processus).semaphore_fork)); |
sem_post(&((*s_etat_processus).semaphore_fork)); |
Line 6070 rplinit(int argc, char *argv[], char *en
|
Line 6262 rplinit(int argc, char *argv[], char *en
|
|
|
if ((*s_etat_processus).requete_redemarrage == d_vrai) |
if ((*s_etat_processus).requete_redemarrage == d_vrai) |
{ |
{ |
chdir(repertoire_initial); |
if (chdir(repertoire_initial) == 0) |
execvp(arg_exec[0], &(arg_exec[0])); |
{ |
|
execvp(arg_exec[0], &(arg_exec[0])); |
|
} |
|
|
erreur = d_erreur; |
erreur = d_erreur; |
} |
} |
|
|
Line 6218 date_compilation()
|
Line 6413 date_compilation()
|
return(date); |
return(date); |
} |
} |
|
|
|
#pragma GCC diagnostic pop |
|
|
// vim: ts=4 |
// vim: ts=4 |