version 1.125, 2012/12/13 16:59:43
|
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_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 100 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 213 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 235 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 253 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 267 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 321 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 345 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 397 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 419 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"); |
|
} |
|
else |
|
{ |
{ |
printf("+++Copyright (C) 1989 to 2011, 2012 BERTRAND Joel\n"); |
printf("+++RPL/2 (R) version %s (%s)\n", d_version_rpl, |
|
((*s_etat_processus).langue == 'F') |
|
? d_date_rpl : d_date_en_rpl); |
|
|
|
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 467 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 514 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 555 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 582 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 604 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 642 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 669 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 691 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 729 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 756 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 778 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 819 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 844 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 866 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 907 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 934 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 956 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 997 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 1024 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 1046 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 1152 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 1196 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 1247 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 1310 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 1363 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 1406 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 1451 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 1496 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 1540 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 1585 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 1622 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 1659 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 1705 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 1759 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 1804 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 1841 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 1886 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 1931 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 1976 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 2013 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 2065 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 2126 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 2176 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 2216 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 2242 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 2263 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 2315 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 2376 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 2425 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 2500 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 2547 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 2591 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 2720 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 2763 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 2789 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 2812 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 2856 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 2889 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 2912 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 2966 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 3037 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 3081 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 3124 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 3168 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 3211 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 3276 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 3336 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 3392 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 3425 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 3595 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 3638 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 3695 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 3785 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 3837 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 3917 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 3973 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 4070 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 4129 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 4216 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 4264 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 4313 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 4361 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 4414 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 4464 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 4487 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 4557 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 4608 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 4660 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 4724 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 4772 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 4816 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 4865 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 4886 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 4915 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 4969 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 5018 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 5072 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 5120 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 5141 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 5190 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 5362 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 5409 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 5427 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 5472 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 5490 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 5506 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 5662 rplinit(int argc, char *argv[], char *en
|
Line 5867 rplinit(int argc, char *argv[], char *en
|
*/ |
*/ |
|
|
liberation_arbre_variables_partagees(s_etat_processus, |
liberation_arbre_variables_partagees(s_etat_processus, |
(*s_etat_processus).s_arbre_variables, d_vrai); |
(*(*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 5678 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; |
} |
} |
|
|
|
l_element_partage_courant = (*(*s_etat_processus) |
|
.l_liste_variables_partagees); |
|
|
|
while(l_element_partage_courant != NULL) |
|
{ |
|
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é |
* depuis rpl() [librpl] et non main(). |
* depuis rpl() [librpl] et non main(). |
Line 5692 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 6012 rplinit(int argc, char *argv[], char *en
|
Line 6229 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); |
|
|
# ifndef SEMAPHORES_NOMMES |
# ifndef SEMAPHORES_NOMMES |
sem_post(&((*s_etat_processus).semaphore_fork)); |
sem_post(&((*s_etat_processus).semaphore_fork)); |
Line 6042 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 6190 date_compilation()
|
Line 6413 date_compilation()
|
return(date); |
return(date); |
} |
} |
|
|
|
#pragma GCC diagnostic pop |
|
|
// vim: ts=4 |
// vim: ts=4 |