Diff for /rpl/src/instructions_r2.c between versions 1.4 and 1.44

version 1.4, 2010/03/04 10:17:52 version 1.44, 2012/12/17 21:22:44
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.12    RPL/2 (R) version 4.1.11
   Copyright (C) 1989-2010 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 20 Line 20
 */  */
   
   
 #include "rpl.conv.h"  #include "rpl-conv.h"
   
   
 /*  /*
Line 434  instruction_return(struct_processus *s_e Line 434  instruction_return(struct_processus *s_e
                         (strcmp(instruction_majuscule, "DO") == 0) ||                          (strcmp(instruction_majuscule, "DO") == 0) ||
                         (strcmp(instruction_majuscule, "WHILE") == 0) ||                          (strcmp(instruction_majuscule, "WHILE") == 0) ||
                         (strcmp(instruction_majuscule, "FOR") == 0) ||                          (strcmp(instruction_majuscule, "FOR") == 0) ||
                           (strcmp(instruction_majuscule, "FORALL") == 0) ||
                         (strcmp(instruction_majuscule, "START") == 0) ||                          (strcmp(instruction_majuscule, "START") == 0) ||
                         (strcmp(instruction_majuscule, "SELECT") == 0)                          (strcmp(instruction_majuscule, "SELECT") == 0) ||
                           (strcmp(instruction_majuscule, "CRITICAL") == 0)
                         || (strcmp(instruction_majuscule, "CASE") == 0)                          || (strcmp(instruction_majuscule, "CASE") == 0)
                         || (strcmp(instruction_majuscule, "<<") == 0))                          || (strcmp(instruction_majuscule, "<<") == 0))
                 {                  {
Line 444  instruction_return(struct_processus *s_e Line 446  instruction_return(struct_processus *s_e
                         analyse(s_etat_processus, NULL);                          analyse(s_etat_processus, NULL);
                     }                      }
                     else if ((strcmp(instruction_majuscule, "FOR") == 0) ||                      else if ((strcmp(instruction_majuscule, "FOR") == 0) ||
                               (strcmp(instruction_majuscule, "FORALL") == 0) ||
                             (strcmp(instruction_majuscule, "START") == 0))                              (strcmp(instruction_majuscule, "START") == 0))
                     {                      {
                         empilement_pile_systeme(s_etat_processus);                          empilement_pile_systeme(s_etat_processus);
Line 501  instruction_return(struct_processus *s_e Line 504  instruction_return(struct_processus *s_e
                         }                          }
                     }                      }
                     else if (((strcmp(instruction_majuscule, "NEXT") == 0) ||                      else if (((strcmp(instruction_majuscule, "NEXT") == 0) ||
                                 (strcmp(instruction_majuscule, "STEP") == 0)) &&                              (strcmp(instruction_majuscule, "STEP") == 0)) &&
                                 ((*(*s_etat_processus).l_base_pile_systeme)                              ((*(*s_etat_processus).l_base_pile_systeme)
                                 .type_cloture != 'L'))                              .type_cloture != 'L'))
                     {                      {
                         /*                          /*
                          * Libération des compteurs de boucle.                           * Libération des compteurs de boucle.
                          */                           */
   
                         presence_compteur = ((*(*s_etat_processus)                          presence_compteur = (((*(*s_etat_processus)
                                 .l_base_pile_systeme).type_cloture == 'F')                                  .l_base_pile_systeme).type_cloture == 'F') ||
                                 ? d_vrai : d_faux;                                  ((*(*s_etat_processus).l_base_pile_systeme)
                                   .type_cloture == 'A')) ? d_vrai : d_faux;
   
                         if (((*(*s_etat_processus).l_base_pile_systeme)                          if (((*(*s_etat_processus).l_base_pile_systeme)
                                 .type_cloture != 'S') &&                                  .type_cloture != 'S') &&
Line 534  instruction_return(struct_processus *s_e Line 538  instruction_return(struct_processus *s_e
                                 return;                                  return;
                             }                              }
   
                             if (((*s_etat_processus).s_liste_variables                              if ((*(*s_etat_processus)
                                     [(*s_etat_processus)                                      .pointeur_variable_courante).objet == NULL)
                                     .position_variable_courante]).objet == NULL)  
                             {                              {
                                 (*s_etat_processus).erreur_systeme = d_es;                                  (*s_etat_processus).erreur_systeme = d_es;
                                 (*s_etat_processus).erreur_execution =                                  (*s_etat_processus).erreur_execution =
Line 544  instruction_return(struct_processus *s_e Line 547  instruction_return(struct_processus *s_e
                                 return;                                  return;
                             }                              }
   
                             (*(*s_etat_processus).l_base_pile_systeme)                              (*s_etat_processus).niveau_courant--;
                                     .indice_boucle = ((*s_etat_processus)  
                                     .s_liste_variables[(*s_etat_processus)  
                                     .position_variable_courante]).objet;  
   
                             if (presence_compteur == d_vrai)                              if (retrait_variables_par_niveau(
                                       s_etat_processus) == d_erreur)
                             {                              {
                                 (*s_etat_processus).niveau_courant--;                                  return;
   
                                 if (retrait_variable_par_niveau(  
                                         s_etat_processus) == d_erreur)  
                                 {  
                                     return;  
                                 }  
                             }                              }
                         }                          }
   
                         (*(*s_etat_processus).l_base_pile_systeme)  
                                 .indice_boucle = NULL;  
   
                         depilement_pile_systeme(s_etat_processus);                          depilement_pile_systeme(s_etat_processus);
   
                           if ((*s_etat_processus).erreur_systeme != d_es)
                           {
                               return;
                           }
                     }                      }
                     else                      else
                     {                      {
                           if ((*s_etat_processus).l_base_pile_systeme == NULL)
                           {
                               (*s_etat_processus).erreur_systeme =
                                       d_es_processus;
                               return;
                           }
   
                           if ((*(*s_etat_processus).l_base_pile_systeme)
                                   .type_cloture == 'Q')
                           {
                               if (pthread_mutex_unlock(
                                       &mutex_sections_critiques) != 0)
                               {
                                   (*s_etat_processus).erreur_systeme =
                                           d_es_processus;
                                   return;
                               }
   
                               (*s_etat_processus).sections_critiques--;
                           }
   
                         depilement_pile_systeme(s_etat_processus);                          depilement_pile_systeme(s_etat_processus);
   
                         if ((*s_etat_processus).erreur_systeme != d_es)                          if ((*s_etat_processus).erreur_systeme != d_es)
Line 666  instruction_return(struct_processus *s_e Line 684  instruction_return(struct_processus *s_e
                     (fonction == instruction_do) ||                      (fonction == instruction_do) ||
                     (fonction == instruction_while) ||                      (fonction == instruction_while) ||
                     (fonction == instruction_for) ||                      (fonction == instruction_for) ||
                       (fonction == instruction_forall) ||
                     (fonction == instruction_start) ||                      (fonction == instruction_start) ||
                     (fonction == instruction_select) ||                      (fonction == instruction_select) ||
                       (fonction == instruction_critical) ||
                     (fonction == instruction_case) ||                      (fonction == instruction_case) ||
                     (fonction == instruction_vers_niveau_superieur))                      (fonction == instruction_vers_niveau_superieur))
             {              {
Line 677  instruction_return(struct_processus *s_e Line 697  instruction_return(struct_processus *s_e
                             instruction_vers_niveau_superieur);                              instruction_vers_niveau_superieur);
                 }                  }
                 else if ((fonction == instruction_for) ||                  else if ((fonction == instruction_for) ||
                           (fonction == instruction_forall) ||
                         (fonction == instruction_start))                          (fonction == instruction_start))
                 {                  {
                     empilement_pile_systeme(s_etat_processus);                      empilement_pile_systeme(s_etat_processus);
Line 716  instruction_return(struct_processus *s_e Line 737  instruction_return(struct_processus *s_e
                     analyse(s_etat_processus,                      analyse(s_etat_processus,
                             instruction_vers_niveau_inferieur);                              instruction_vers_niveau_inferieur);
   
                     fin_boucle = (((*(*s_etat_processus)                      fin_boucle = ((*(*s_etat_processus)
                             .expression_courante).suivant == NULL) ||                              .expression_courante).suivant == NULL)
                             ((*s_etat_processus).retour_routine_evaluation  
                             == 'Y'))  
                             ? d_vrai : d_faux;                              ? d_vrai : d_faux;
   
                     if (fin_boucle == d_faux)                      if (fin_boucle == d_faux)
Line 740  instruction_return(struct_processus *s_e Line 759  instruction_return(struct_processus *s_e
                      * Libération des compteurs de boucle.                       * Libération des compteurs de boucle.
                      */                       */
   
                     presence_compteur = ((*(*s_etat_processus)                      presence_compteur = (((*(*s_etat_processus)
                             .l_base_pile_systeme).type_cloture == 'F')                              .l_base_pile_systeme).type_cloture == 'F') ||
                             ? d_vrai : d_faux;                              ((*(*s_etat_processus).l_base_pile_systeme)
                               .type_cloture == 'A')) ? d_vrai : d_faux;
   
                     if (((*(*s_etat_processus).l_base_pile_systeme)                      if (((*(*s_etat_processus).l_base_pile_systeme)
                             .type_cloture != 'S') &&                              .type_cloture != 'S') &&
Line 765  instruction_return(struct_processus *s_e Line 785  instruction_return(struct_processus *s_e
                             return;                              return;
                         }                          }
   
                         if ((*s_etat_processus).s_liste_variables                          if ((*(*s_etat_processus).pointeur_variable_courante)
                                 [(*s_etat_processus).position_variable_courante]  
                                 .objet == NULL)                                  .objet == NULL)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es;                              (*s_etat_processus).erreur_systeme = d_es;
Line 775  instruction_return(struct_processus *s_e Line 794  instruction_return(struct_processus *s_e
                             return;                              return;
                         }                          }
   
                         (*(*s_etat_processus).l_base_pile_systeme)                          (*s_etat_processus).niveau_courant--;
                                 .indice_boucle = ((*s_etat_processus)  
                                 .s_liste_variables[(*s_etat_processus)  
                                 .position_variable_courante]).objet;  
   
                         if (presence_compteur == d_vrai)                          if (retrait_variables_par_niveau(s_etat_processus)
                                   == d_erreur)
                         {                          {
                             (*s_etat_processus).niveau_courant--;                              return;
   
                             if (retrait_variable_par_niveau(s_etat_processus)  
                                     == d_erreur)  
                             {  
                                 return;  
                             }  
                         }                          }
                     }                      }
   
                     (*(*s_etat_processus).l_base_pile_systeme)  
                             .indice_boucle = NULL;  
   
                     depilement_pile_systeme(s_etat_processus);                      depilement_pile_systeme(s_etat_processus);
                 }                  }
                 else                  else
                 {                  {
                       if ((*s_etat_processus).l_base_pile_systeme == NULL)
                       {
                           (*s_etat_processus).erreur_systeme =
                                   d_es_processus;
                           return;
                       }
   
                       if ((*(*s_etat_processus).l_base_pile_systeme)
                               .type_cloture == 'Q')
                       {
                           if (pthread_mutex_unlock(
                                   &mutex_sections_critiques) != 0)
                           {
                               (*s_etat_processus).erreur_systeme =
                                       d_es_processus;
                               return;
                           }
   
                           (*s_etat_processus).sections_critiques--;
                       }
   
                     depilement_pile_systeme(s_etat_processus);                      depilement_pile_systeme(s_etat_processus);
   
                     if ((*s_etat_processus).erreur_systeme != d_es)                      if ((*s_etat_processus).erreur_systeme != d_es)
Line 937  instruction_rdm(struct_processus *s_etat Line 966  instruction_rdm(struct_processus *s_etat
   
         liberation(s_etat_processus, s_objet_initial);          liberation(s_etat_processus, s_objet_initial);
   
         if ((*s_etat_processus).s_liste_variables[(*s_etat_processus)          if ((*(*s_etat_processus).pointeur_variable_courante)
                 .position_variable_courante].variable_verrouillee == d_vrai)                  .variable_verrouillee == d_vrai)
         {          {
             (*s_etat_processus).erreur_execution = d_ex_variable_verrouillee;              (*s_etat_processus).erreur_execution = d_ex_variable_verrouillee;
   
Line 946  instruction_rdm(struct_processus *s_etat Line 975  instruction_rdm(struct_processus *s_etat
             return;              return;
         }          }
   
         s_objet_initial = (*s_etat_processus).s_liste_variables          s_objet_initial = (*(*s_etat_processus).pointeur_variable_courante)
                 [(*s_etat_processus).position_variable_courante].objet;                  .objet;
   
         if (s_objet_initial == NULL)          if (s_objet_initial == NULL)
         {          {
             if (pthread_mutex_lock(&((*(*s_etat_processus)  
                     .s_liste_variables_partagees).mutex)) != 0)  
             {  
                 (*s_etat_processus).erreur_systeme = d_es_processus;  
                 return;  
             }  
   
             if (recherche_variable_partagee(s_etat_processus,              if (recherche_variable_partagee(s_etat_processus,
                     (*s_etat_processus).s_liste_variables                      (*(*s_etat_processus).pointeur_variable_courante).nom,
                     [(*s_etat_processus).position_variable_courante].nom,                      (*(*s_etat_processus).pointeur_variable_courante)
                     (*s_etat_processus).s_liste_variables                      .variable_partagee, (*(*s_etat_processus)
                     [(*s_etat_processus).position_variable_courante]                      .pointeur_variable_courante).origine) == NULL)
                     .variable_partagee, (*s_etat_processus).s_liste_variables  
                     [(*s_etat_processus).position_variable_courante].origine)  
                     == d_faux)  
             {              {
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)  
                         .s_liste_variables_partagees).mutex)) != 0)  
                 {  
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
   
                 (*s_etat_processus).erreur_systeme = d_es;                  (*s_etat_processus).erreur_systeme = d_es;
                 (*s_etat_processus).erreur_execution =                  (*s_etat_processus).erreur_execution =
                         d_ex_variable_non_definie;                          d_ex_variable_non_definie;
Line 996  instruction_rdm(struct_processus *s_etat Line 1008  instruction_rdm(struct_processus *s_etat
         if (variable_partagee == d_vrai)          if (variable_partagee == d_vrai)
         {          {
             if (pthread_mutex_unlock(&((*(*s_etat_processus)              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .pointeur_variable_partagee_courante).mutex)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
Line 1028  instruction_rdm(struct_processus *s_etat Line 1040  instruction_rdm(struct_processus *s_etat
         if (variable_partagee == d_vrai)          if (variable_partagee == d_vrai)
         {          {
             if (pthread_mutex_unlock(&((*(*s_etat_processus)              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .pointeur_variable_partagee_courante).mutex)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
Line 1058  instruction_rdm(struct_processus *s_etat Line 1070  instruction_rdm(struct_processus *s_etat
             if (variable_partagee == d_vrai)              if (variable_partagee == d_vrai)
             {              {
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                         .s_liste_variables_partagees).mutex)) != 0)                          .pointeur_variable_partagee_courante).mutex)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
Line 1081  instruction_rdm(struct_processus *s_etat Line 1093  instruction_rdm(struct_processus *s_etat
             if (variable_partagee == d_vrai)              if (variable_partagee == d_vrai)
             {              {
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                         .s_liste_variables_partagees).mutex)) != 0)                          .pointeur_variable_partagee_courante).mutex)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
Line 1118  instruction_rdm(struct_processus *s_etat Line 1130  instruction_rdm(struct_processus *s_etat
         if (variable_partagee == d_vrai)          if (variable_partagee == d_vrai)
         {          {
             if (pthread_mutex_unlock(&((*(*s_etat_processus)              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .pointeur_variable_partagee_courante).mutex)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
Line 1147  instruction_rdm(struct_processus *s_etat Line 1159  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1168  instruction_rdm(struct_processus *s_etat Line 1180  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1205  instruction_rdm(struct_processus *s_etat Line 1217  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1226  instruction_rdm(struct_processus *s_etat Line 1238  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1264  instruction_rdm(struct_processus *s_etat Line 1276  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1286  instruction_rdm(struct_processus *s_etat Line 1298  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1333  instruction_rdm(struct_processus *s_etat Line 1345  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1354  instruction_rdm(struct_processus *s_etat Line 1366  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1404  instruction_rdm(struct_processus *s_etat Line 1416  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1425  instruction_rdm(struct_processus *s_etat Line 1437  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1476  instruction_rdm(struct_processus *s_etat Line 1488  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1498  instruction_rdm(struct_processus *s_etat Line 1510  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1553  instruction_rdm(struct_processus *s_etat Line 1565  instruction_rdm(struct_processus *s_etat
             if (variable_partagee == d_vrai)              if (variable_partagee == d_vrai)
             {              {
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                         .s_liste_variables_partagees).mutex)) != 0)                          .pointeur_variable_partagee_courante).mutex)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
Line 1591  instruction_rdm(struct_processus *s_etat Line 1603  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1615  instruction_rdm(struct_processus *s_etat Line 1627  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1635  instruction_rdm(struct_processus *s_etat Line 1647  instruction_rdm(struct_processus *s_etat
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 1676  instruction_rdm(struct_processus *s_etat Line 1689  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1700  instruction_rdm(struct_processus *s_etat Line 1713  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1720  instruction_rdm(struct_processus *s_etat Line 1733  instruction_rdm(struct_processus *s_etat
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 1761  instruction_rdm(struct_processus *s_etat Line 1775  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1785  instruction_rdm(struct_processus *s_etat Line 1799  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1806  instruction_rdm(struct_processus *s_etat Line 1820  instruction_rdm(struct_processus *s_etat
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 1858  instruction_rdm(struct_processus *s_etat Line 1873  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1882  instruction_rdm(struct_processus *s_etat Line 1897  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1905  instruction_rdm(struct_processus *s_etat Line 1920  instruction_rdm(struct_processus *s_etat
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 1957  instruction_rdm(struct_processus *s_etat Line 1973  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 1981  instruction_rdm(struct_processus *s_etat Line 1997  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 2004  instruction_rdm(struct_processus *s_etat Line 2020  instruction_rdm(struct_processus *s_etat
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 2056  instruction_rdm(struct_processus *s_etat Line 2073  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 2080  instruction_rdm(struct_processus *s_etat Line 2097  instruction_rdm(struct_processus *s_etat
                 if (variable_partagee == d_vrai)                  if (variable_partagee == d_vrai)
                 {                  {
                     if (pthread_mutex_unlock(&((*(*s_etat_processus)                      if (pthread_mutex_unlock(&((*(*s_etat_processus)
                             .s_liste_variables_partagees).mutex)) != 0)                              .pointeur_variable_partagee_courante).mutex)) != 0)
                     {                      {
                         (*s_etat_processus).erreur_systeme = d_es_processus;                          (*s_etat_processus).erreur_systeme = d_es_processus;
                         return;                          return;
Line 2103  instruction_rdm(struct_processus *s_etat Line 2120  instruction_rdm(struct_processus *s_etat
                     if (variable_partagee == d_vrai)                      if (variable_partagee == d_vrai)
                     {                      {
                         if (pthread_mutex_unlock(&((*(*s_etat_processus)                          if (pthread_mutex_unlock(&((*(*s_etat_processus)
                                 .s_liste_variables_partagees).mutex)) != 0)                                  .pointeur_variable_partagee_courante).mutex))
                                   != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 2161  instruction_rdm(struct_processus *s_etat Line 2179  instruction_rdm(struct_processus *s_etat
             if (variable_partagee == d_vrai)              if (variable_partagee == d_vrai)
             {              {
                 if (pthread_mutex_unlock(&((*(*s_etat_processus)                  if (pthread_mutex_unlock(&((*(*s_etat_processus)
                         .s_liste_variables_partagees).mutex)) != 0)                          .pointeur_variable_partagee_courante).mutex)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
Line 2196  instruction_rdm(struct_processus *s_etat Line 2214  instruction_rdm(struct_processus *s_etat
     {      {
         if (variable_partagee == d_vrai)          if (variable_partagee == d_vrai)
         {          {
             (*(*s_etat_processus).s_liste_variables_partagees).table              (*(*s_etat_processus).pointeur_variable_partagee_courante).objet =
                     [(*(*s_etat_processus).s_liste_variables_partagees)                      s_objet_redimensionne;
                     .position_variable].objet = s_objet_redimensionne;  
   
             if (pthread_mutex_unlock(&((*(*s_etat_processus)              if (pthread_mutex_unlock(&((*(*s_etat_processus)
                     .s_liste_variables_partagees).mutex)) != 0)                      .pointeur_variable_partagee_courante).mutex)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
Line 2209  instruction_rdm(struct_processus *s_etat Line 2226  instruction_rdm(struct_processus *s_etat
         }          }
         else          else
         {          {
             (*s_etat_processus).s_liste_variables              (*(*s_etat_processus).pointeur_variable_courante).objet =
                     [(*s_etat_processus).position_variable_courante].objet =  
                     s_objet_redimensionne;                      s_objet_redimensionne;
         }          }
     }      }

Removed from v.1.4  
changed lines
  Added in v.1.44


CVSweb interface <joel.bertrand@systella.fr>