version 1.108, 2012/01/17 14:44:13
|
version 1.116, 2012/08/22 10:47:18
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.6 |
RPL/2 (R) version 4.1.10 |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 429 rplinit(int argc, char *argv[], char *en
|
Line 429 rplinit(int argc, char *argv[], char *en
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGINT); |
kill(getpid(), SIGINT); |
|
|
|
attente.tv_sec = 0; |
|
attente.tv_nsec = 1000000; |
|
|
|
for(i = 0; (i < 1000) && (signal_test == SIGTEST); i++) |
|
{ |
|
nanosleep(&attente, NULL); |
|
} |
|
|
if (signal_test != SIGINT) |
if (signal_test != SIGINT) |
{ |
{ |
erreur = d_es_signal; |
erreur = d_es_signal; |
Line 466 rplinit(int argc, char *argv[], char *en
|
Line 474 rplinit(int argc, char *argv[], char *en
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGTERM); |
kill(getpid(), SIGTERM); |
|
|
|
attente.tv_sec = 0; |
|
attente.tv_nsec = 1000000; |
|
|
|
for(i = 0; (i < 1000) && (signal_test == SIGTEST); i++) |
|
{ |
|
nanosleep(&attente, NULL); |
|
} |
|
|
if (signal_test != SIGTERM) |
if (signal_test != SIGTERM) |
{ |
{ |
erreur = d_es_signal; |
erreur = d_es_signal; |
Line 503 rplinit(int argc, char *argv[], char *en
|
Line 519 rplinit(int argc, char *argv[], char *en
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGALRM); |
kill(getpid(), SIGALRM); |
|
|
|
attente.tv_sec = 0; |
|
attente.tv_nsec = 1000000; |
|
|
|
for(i = 0; (i < 1000) && (signal_test == SIGTEST); i++) |
|
{ |
|
nanosleep(&attente, NULL); |
|
} |
|
|
if (signal_test != SIGALRM) |
if (signal_test != SIGALRM) |
{ |
{ |
erreur = d_es_signal; |
erreur = d_es_signal; |
Line 541 rplinit(int argc, char *argv[], char *en
|
Line 565 rplinit(int argc, char *argv[], char *en
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGTSTP); |
kill(getpid(), SIGTSTP); |
|
|
|
attente.tv_sec = 0; |
|
attente.tv_nsec = 1000000; |
|
|
|
for(i = 0; (i < 1000) && (signal_test == SIGTEST); i++) |
|
{ |
|
nanosleep(&attente, NULL); |
|
} |
|
|
if (signal_test != SIGTSTP) |
if (signal_test != SIGTSTP) |
{ |
{ |
erreur = d_es_signal; |
erreur = d_es_signal; |
Line 581 rplinit(int argc, char *argv[], char *en
|
Line 613 rplinit(int argc, char *argv[], char *en
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGPIPE); |
kill(getpid(), SIGPIPE); |
|
|
|
attente.tv_sec = 0; |
|
attente.tv_nsec = 1000000; |
|
|
|
for(i = 0; (i < 1000) && (signal_test == SIGTEST); i++) |
|
{ |
|
nanosleep(&attente, NULL); |
|
} |
|
|
if (signal_test != SIGPIPE) |
if (signal_test != SIGPIPE) |
{ |
{ |
erreur = d_es_signal; |
erreur = d_es_signal; |
Line 621 rplinit(int argc, char *argv[], char *en
|
Line 661 rplinit(int argc, char *argv[], char *en
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGUSR1); |
kill(getpid(), SIGUSR1); |
|
|
|
attente.tv_sec = 0; |
|
attente.tv_nsec = 1000000; |
|
|
|
for(i = 0; (i < 1000) && (signal_test == SIGTEST); i++) |
|
{ |
|
nanosleep(&attente, NULL); |
|
} |
|
|
if (signal_test != SIGUSR1) |
if (signal_test != SIGUSR1) |
{ |
{ |
erreur = d_es_signal; |
erreur = d_es_signal; |
Line 1590 rplinit(int argc, char *argv[], char *en
|
Line 1638 rplinit(int argc, char *argv[], char *en
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGSEGV); |
kill(getpid(), SIGSEGV); |
|
|
|
attente.tv_sec = 0; |
|
attente.tv_nsec = 1000000; |
|
|
|
for(i = 0; (i < 1000) && (signal_test == SIGTEST); i++) |
|
{ |
|
nanosleep(&attente, NULL); |
|
} |
|
|
if (signal_test != SIGSEGV) |
if (signal_test != SIGSEGV) |
{ |
{ |
erreur = d_es_signal; |
erreur = d_es_signal; |
Line 1609 rplinit(int argc, char *argv[], char *en
|
Line 1665 rplinit(int argc, char *argv[], char *en
|
} |
} |
# endif |
# endif |
|
|
|
action.sa_handler = interruption3; |
|
action.sa_flags = 0; |
|
|
if (sigaction(SIGBUS, &action, NULL) != 0) |
if (sigaction(SIGBUS, &action, NULL) != 0) |
{ |
{ |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
Line 1628 rplinit(int argc, char *argv[], char *en
|
Line 1687 rplinit(int argc, char *argv[], char *en
|
signal_test = SIGTEST; |
signal_test = SIGTEST; |
kill(getpid(), SIGBUS); |
kill(getpid(), SIGBUS); |
|
|
|
attente.tv_sec = 0; |
|
attente.tv_nsec = 1000000; |
|
|
|
for(i = 0; (i < 1000) && (signal_test == SIGTEST); i++) |
|
{ |
|
nanosleep(&attente, NULL); |
|
} |
|
|
if (signal_test != SIGBUS) |
if (signal_test != SIGBUS) |
{ |
{ |
erreur = d_es_signal; |
erreur = d_es_signal; |
Line 2032 rplinit(int argc, char *argv[], char *en
|
Line 2099 rplinit(int argc, char *argv[], char *en
|
(*s_etat_processus).arbre_instructions = NULL; |
(*s_etat_processus).arbre_instructions = NULL; |
|
|
(*s_etat_processus).tid_processus_pere = pthread_self(); |
(*s_etat_processus).tid_processus_pere = pthread_self(); |
(*s_etat_processus).tid= pthread_self(); |
(*s_etat_processus).tid = pthread_self(); |
(*s_etat_processus).pid_processus_pere = getpid(); |
(*s_etat_processus).pid_processus_pere = getpid(); |
(*s_etat_processus).processus_detache = d_vrai; |
(*s_etat_processus).processus_detache = d_vrai; |
(*s_etat_processus).var_volatile_processus_pere = -1; |
(*s_etat_processus).var_volatile_processus_pere = -1; |
Line 2129 rplinit(int argc, char *argv[], char *en
|
Line 2196 rplinit(int argc, char *argv[], char *en
|
(*((*s_etat_processus).l_base_pile_systeme)) |
(*((*s_etat_processus).l_base_pile_systeme)) |
.retour_definition = 'Y'; |
.retour_definition = 'Y'; |
|
|
(*s_etat_processus).indep = (struct_objet *) malloc( |
(*s_etat_processus).indep = allocation(s_etat_processus, NON); |
sizeof(struct_objet)); |
(*s_etat_processus).depend = allocation(s_etat_processus, NON); |
(*s_etat_processus).depend = (struct_objet *) malloc( |
|
sizeof(struct_objet)); |
|
(*s_etat_processus).parametres_courbes_de_niveau = |
(*s_etat_processus).parametres_courbes_de_niveau = |
(struct_objet *) malloc(sizeof(struct_objet)); |
allocation(s_etat_processus, NON); |
|
|
if (((*s_etat_processus).indep != NULL) && |
if (((*s_etat_processus).indep != NULL) && |
((*s_etat_processus).depend != NULL) && |
((*s_etat_processus).depend != NULL) && |
Line 2544 rplinit(int argc, char *argv[], char *en
|
Line 2609 rplinit(int argc, char *argv[], char *en
|
home, ds_fichier_historique); |
home, ds_fichier_historique); |
|
|
using_history(); |
using_history(); |
|
|
|
// Pour pouvoir utiliser le keymap avant le premier |
|
// appel à readline(). |
|
rl_initialize(); |
|
|
erreur_historique = read_history( |
erreur_historique = read_history( |
(*s_etat_processus).nom_fichier_historique); |
(*s_etat_processus).nom_fichier_historique); |
|
|