--- rpl/src/rpl.h 2012/10/04 15:21:26 1.180 +++ rpl/src/rpl.h 2012/10/14 21:37:11 1.184 @@ -1761,6 +1761,7 @@ typedef struct tableau_variables // de l'objet. logical1 variable_verrouillee; + logical1 variable_masquee; union_position_variable variable_statique; union_position_variable variable_partagee; } struct_tableau_variables; @@ -1789,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 @@ -1880,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; @@ -3003,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, @@ -3171,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); @@ -3203,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); @@ -3368,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 @@ -3432,15 +3443,13 @@ void f77multiplicationci_(complex16 *ca, void f77multiplicationcr_(complex16 *ca, real8 *rb, complex16 *resultat); void f77puissancecc_(complex16 *ca, complex16 *cb, complex16 *resultat); -void f77puissanceci_(complex16 *ca, integer8 *ib, complex16 *resultat, - integer4 *troncature); +void f77puissanceci_(complex16 *ca, integer8 *ib, complex16 *resultat); void f77puissancecr_(complex16 *ca, real8 *rb, complex16 *resultat); void f77puissanceic_(integer8 *ia, complex16 *cb, complex16 *resultat); void f77puissanceii_(integer8 *ia, integer8 *ib, integer8 *resultat); void f77puissanceir_(integer8 *ia, real8 *rb, real8 *resultat); void f77puissancerc_(real8 *ra, complex16 *cb, complex16 *resultat); -void f77puissanceri_(real8 *ra, integer8 *ib, real8 *resultat, - integer4 *troncature); +void f77puissanceri_(real8 *ra, integer8 *ib, real8 *resultat); void f77puissancerr_(real8 *ra, real8 *rb, real8 *resultat); void f77racinecarreec_(complex16 *ca, complex16 *resultat);