Diff for /rpl/src/instructions_d4.c between versions 1.21 and 1.43

version 1.21, 2011/06/09 14:48:36 version 1.43, 2012/12/17 21:22:43
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.0.prerelease.0    RPL/2 (R) version 4.1.11
   Copyright (C) 1989-2011 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 720  instruction_drws(struct_processus *s_eta Line 720  instruction_drws(struct_processus *s_eta
          * Aucune variable ds_sdat n'existe.           * Aucune variable ds_sdat n'existe.
          */           */
   
         (*s_etat_processus).erreur_execution = d_ex_absence_observations;          if ((*s_etat_processus).erreur_execution == d_ex)
           {
               (*s_etat_processus).erreur_execution = d_ex_absence_observations;
           }
   
         (*s_etat_processus).erreur_systeme = d_es;          (*s_etat_processus).erreur_systeme = d_es;
   
         return;          return;
     }      }
   
     if ((s_objet_statistique = (*(*s_etat_processus).pointeur_variable_courante)      s_objet_statistique = (*(*s_etat_processus).pointeur_variable_courante)
             .objet) == NULL)              .objet;
     {  
         (*s_etat_processus).erreur_execution = d_ex_variable_partagee;  
         return;  
     }  
   
     if ((*s_objet_statistique).type == MIN)      if ((*s_objet_statistique).type == MIN)
     {      {
Line 1069  instruction_decr(struct_processus *s_eta Line 1069  instruction_decr(struct_processus *s_eta
         if ((*(*s_etat_processus).pointeur_variable_courante).objet          if ((*(*s_etat_processus).pointeur_variable_courante).objet
                 == NULL)                  == 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).pointeur_variable_courante).nom,                      (*(*s_etat_processus).pointeur_variable_courante).nom,
                     (*(*s_etat_processus).pointeur_variable_courante)                      (*(*s_etat_processus).pointeur_variable_courante)
                     .variable_partagee, (*(*s_etat_processus)                      .variable_partagee, (*(*s_etat_processus)
                     .pointeur_variable_courante).origine) == d_faux)                      .pointeur_variable_courante).origine) == 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 1090  instruction_decr(struct_processus *s_eta Line 1083  instruction_decr(struct_processus *s_eta
             }              }
   
             s_objet_argument = (*(*s_etat_processus)              s_objet_argument = (*(*s_etat_processus)
                     .s_liste_variables_partagees).table                      .pointeur_variable_partagee_courante).objet;
                     [(*(*s_etat_processus).s_liste_variables_partagees)  
                     .position_variable].objet;  
             variable_partagee = d_vrai;              variable_partagee = d_vrai;
         }          }
         else          else
Line 1108  instruction_decr(struct_processus *s_eta Line 1099  instruction_decr(struct_processus *s_eta
             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 1124  instruction_decr(struct_processus *s_eta Line 1115  instruction_decr(struct_processus *s_eta
         if (variable_partagee == d_vrai)          if (variable_partagee == d_vrai)
         {          {
             (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;              (*(*s_etat_processus).pointeur_variable_courante).objet = NULL;
             (*(*s_etat_processus)              (*(*s_etat_processus).pointeur_variable_partagee_courante).objet =
                     .s_liste_variables_partagees).table                      s_copie_argument;
                     [(*(*s_etat_processus).s_liste_variables_partagees)  
                     .position_variable].objet = s_copie_argument;  
         }          }
         else          else
         {          {
Line 1142  instruction_decr(struct_processus *s_eta Line 1131  instruction_decr(struct_processus *s_eta
             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 1154  instruction_decr(struct_processus *s_eta Line 1143  instruction_decr(struct_processus *s_eta
             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;

Removed from v.1.21  
changed lines
  Added in v.1.43


CVSweb interface <joel.bertrand@systella.fr>