--- rpl/src/gestion_objets.c 2010/04/07 13:45:03 1.9 +++ rpl/src/gestion_objets.c 2010/04/27 15:53:36 1.13 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.14 + RPL/2 (R) version 4.0.15 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -2721,7 +2721,16 @@ copie_etat_processus(struct_processus *s * n'ont aucune raison de changer. */ +# ifndef SEMAPHORES_NOMMES sem_init(&((*s_nouvel_etat_processus).semaphore_fork), 0, 0); +# else + if (((*s_nouvel_etat_processus).semaphore_fork = sem_init2(0, sem_fork)) + == SEM_FAILED) + { + (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; + return(NULL); + } +# endif (*s_nouvel_etat_processus).var_volatile_processus_pere = 0; (*s_nouvel_etat_processus).fichiers_graphiques = NULL; @@ -2753,6 +2762,8 @@ copie_etat_processus(struct_processus *s (*s_nouvel_etat_processus).nombre_interruptions_en_queue = 0; (*s_nouvel_etat_processus).nombre_interruptions_non_affectees = 0; + (*s_nouvel_etat_processus).on_exit = NULL; + for(i = 0; i < d_NOMBRE_INTERRUPTIONS; i++) { (*s_nouvel_etat_processus).corps_interruptions[i] = NULL; @@ -3032,6 +3043,8 @@ copie_etat_processus(struct_processus *s (*s_etat_processus).s_liste_variables[i].niveau; (*s_nouvel_etat_processus).s_liste_variables[i].variable_statique = (*s_etat_processus).s_liste_variables[i].variable_statique; + (*s_nouvel_etat_processus).s_liste_variables[i].variable_partagee = + (*s_etat_processus).s_liste_variables[i].variable_partagee; (*s_nouvel_etat_processus).s_liste_variables[i].variable_verrouillee = (*s_etat_processus).s_liste_variables[i].variable_verrouillee;