version 1.127, 2012/12/17 21:22:44
|
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 106 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 219 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 241 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 259 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 273 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 327 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 351 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 403 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 425 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 473 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 520 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 561 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 588 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 610 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 648 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 675 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 697 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 735 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 762 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 784 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 825 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 850 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 872 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 913 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 940 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 962 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 1003 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 1030 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 1052 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 1158 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 1202 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 1253 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 1316 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 1369 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 1412 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 1457 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 1502 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 1546 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 1591 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 1628 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 1665 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 1711 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 1765 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 1810 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 1847 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 1892 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 1937 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 1982 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 2019 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 2071 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 2132 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 2182 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 2222 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 2248 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 2269 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 2321 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 2382 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 2431 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 2506 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 2553 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 2597 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 2726 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 2769 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 2795 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 2818 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 2862 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 2895 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 2918 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 2972 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 3043 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 3087 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 3130 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 3174 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 3217 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 3282 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 3342 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 3398 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 3608 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 3651 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 3708 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 3798 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 3850 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 3930 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 3986 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 4083 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 4142 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 4229 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 4277 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 4326 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 4374 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 4427 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 4477 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 4500 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 4570 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 4621 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 4673 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 4737 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 4785 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 4829 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 4878 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 4899 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 4928 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 4982 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 5031 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 5085 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 5133 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 5154 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 5203 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 5375 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 5422 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 5440 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 5485 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 5503 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 5519 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 5716 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 6036 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 6066 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 6214 date_compilation()
|
Line 6413 date_compilation()
|
return(date); |
return(date); |
} |
} |
|
|
|
#pragma GCC diagnostic pop |
|
|
// vim: ts=4 |
// vim: ts=4 |