--- rpl/src/rpl.h 2012/10/05 13:12:39 1.181 +++ rpl/src/rpl.h 2012/10/14 21:37:11 1.184 @@ -1790,6 +1790,7 @@ typedef struct liste_variables_statiques struct liste_variables_statiques *suivant; struct liste_variables_statiques *precedent; struct liste_variables_statiques *reference; + struct_arbre_variables *feuille; struct_variable_statique *variable; } struct_liste_variables_statiques; #endif @@ -1881,6 +1882,8 @@ typedef struct processus logical1 presence_fusible; pthread_t thread_fusible; pthread_t thread_surveille_par_fusible; + pthread_t thread_signaux; + int pipe_signaux[2]; volatile int pointeur_signal_ecriture; volatile int pointeur_signal_lecture; @@ -3004,6 +3007,7 @@ void scrutation_interruptions(struct_pro void sf(struct_processus *s_etat_processus, unsigned char indice_drapeau); void *surveillance_processus(void *argument); void swap(void *variable_1, void *variable_2, unsigned long taille_octets); +void *thread_signaux(void *argument); void trace(struct_processus *s_etat_processus, FILE *flux); void traitement_asynchrone_exceptions_gsl(struct_processus *s_etat_processus); void traitement_exceptions_gsl(const char *reason, const char *file, @@ -3172,8 +3176,8 @@ unsigned char *transliteration(struct_pr */ #ifndef RPLARGS -logical1 ajout_bouchon_variable_statique(struct_processus *s_etat_processus); logical1 analyse_syntaxique(struct_processus *s_etat_processus); +logical1 arret_thread_signaux(struct_processus *s_etat_processus); logical1 caracteristiques_fichier(struct_processus *s_etat_processus, unsigned char *nom, logical1 *existence, logical1 *ouverture, unsigned long *unite); @@ -3204,13 +3208,15 @@ logical1 initialisation_fichier_acces_di sqlite3 *sqlite, logical1 binaire); logical1 initialisation_fichier_acces_indexe(struct_processus *s_etat_processus, sqlite3 *sqlite, integer8 position_clef, logical1 binaire); +logical1 lancement_thread_signaux(struct_processus *s_etat_processus); logical1 recherche_instruction_suivante(struct_processus *s_etat_processus); logical1 retrait_variable(struct_processus *s_etat_processus, unsigned char *nom_variable, unsigned char type); logical1 retrait_variables_par_niveau(struct_processus *s_etat_processus); logical1 retrait_variable_partagee(struct_processus *s_etat_processus, unsigned char *nom_variable, union_position_variable position); -logical1 retrait_variables_statiques(struct_processus *s_etat_processus); +logical1 retrait_variables_statiques_locales( + struct_processus *s_etat_processus); logical1 retrait_variable_statique(struct_processus *s_etat_processus, unsigned char *nom_variable, union_position_variable position); logical1 sequenceur(struct_processus *s_etat_processus); @@ -3369,6 +3375,10 @@ struct_objet *parametres_sql(struct_proc struct_objet *simplification(struct_processus *s_etat_processus, struct_objet *s_objet); +struct_arbre_variables *allocation_noeud(struct_processus *s_etat_processus); +struct_arbre_variables **allocation_tableau_noeuds( + struct_processus *s_etat_processus); + /* -------------------------------------------------------------------------------- Fonctions renvoyant un pointeur sur une *struct_liste_variables_statiques