Diff for /rpl/src/instructions_g4.c between versions 1.16 and 1.40

version 1.16, 2011/03/06 16:44:11 version 1.40, 2012/12/18 13:19:36
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.21    RPL/2 (R) version 4.1.12
   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 119  instruction_getc(struct_processus *s_eta Line 119  instruction_getc(struct_processus *s_eta
   
         liberation(s_etat_processus, s_objet_argument_2);          liberation(s_etat_processus, s_objet_argument_2);
   
         s_objet_argument_2 = (*s_etat_processus).s_liste_variables          s_objet_argument_2 = (*(*s_etat_processus).pointeur_variable_courante)
                 [(*s_etat_processus).position_variable_courante].objet;                  .objet;
         presence_variable = d_vrai;          presence_variable = d_vrai;
   
         if (s_objet_argument_2 == NULL)          if (s_objet_argument_2 == NULL)
         {          {
             // Variable partagée              // Variable partagée
   
             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;  
                 }  
   
                 liberation(s_etat_processus, s_objet_argument_1);                  liberation(s_etat_processus, s_objet_argument_1);
   
                 (*s_etat_processus).erreur_systeme = d_es;                  (*s_etat_processus).erreur_systeme = d_es;
Line 160  instruction_getc(struct_processus *s_eta Line 143  instruction_getc(struct_processus *s_eta
             }              }
   
             s_objet_argument_2 = (*(*s_etat_processus)              s_objet_argument_2 = (*(*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 195  instruction_getc(struct_processus *s_eta Line 176  instruction_getc(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 222  instruction_getc(struct_processus *s_eta Line 204  instruction_getc(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 250  instruction_getc(struct_processus *s_eta Line 233  instruction_getc(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 273  instruction_getc(struct_processus *s_eta Line 256  instruction_getc(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 304  instruction_getc(struct_processus *s_eta Line 287  instruction_getc(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 =                                  (*s_etat_processus).erreur_systeme =
                                         d_es_processus;                                          d_es_processus;
Line 327  instruction_getc(struct_processus *s_eta Line 311  instruction_getc(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))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 381  instruction_getc(struct_processus *s_eta Line 365  instruction_getc(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 =                                  (*s_etat_processus).erreur_systeme =
                                         d_es_processus;                                          d_es_processus;
Line 404  instruction_getc(struct_processus *s_eta Line 389  instruction_getc(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))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 458  instruction_getc(struct_processus *s_eta Line 443  instruction_getc(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 =                                  (*s_etat_processus).erreur_systeme =
                                         d_es_processus;                                          d_es_processus;
Line 481  instruction_getc(struct_processus *s_eta Line 467  instruction_getc(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))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 538  instruction_getc(struct_processus *s_eta Line 524  instruction_getc(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 =                      (*s_etat_processus).erreur_systeme =
                             d_es_processus;                              d_es_processus;
Line 562  instruction_getc(struct_processus *s_eta Line 548  instruction_getc(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 =                  (*s_etat_processus).erreur_systeme =
                         d_es_processus;                          d_es_processus;
Line 584  instruction_getc(struct_processus *s_eta Line 570  instruction_getc(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 =              (*s_etat_processus).erreur_systeme =
                     d_es_processus;                      d_es_processus;
Line 700  instruction_getr(struct_processus *s_eta Line 686  instruction_getr(struct_processus *s_eta
   
         liberation(s_etat_processus, s_objet_argument_2);          liberation(s_etat_processus, s_objet_argument_2);
   
         s_objet_argument_2 = (*s_etat_processus).s_liste_variables          s_objet_argument_2 = (*(*s_etat_processus).pointeur_variable_courante)
                 [(*s_etat_processus).position_variable_courante].objet;                  .objet;
         presence_variable = d_vrai;          presence_variable = d_vrai;
   
         if (s_objet_argument_2 == NULL)          if (s_objet_argument_2 == NULL)
         {          {
             // Variable partagée              // Variable partagée
   
             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;  
                 }  
   
                 liberation(s_etat_processus, s_objet_argument_1);                  liberation(s_etat_processus, s_objet_argument_1);
   
                 (*s_etat_processus).erreur_systeme = d_es;                  (*s_etat_processus).erreur_systeme = d_es;
Line 741  instruction_getr(struct_processus *s_eta Line 710  instruction_getr(struct_processus *s_eta
             }              }
   
             s_objet_argument_2 = (*(*s_etat_processus)              s_objet_argument_2 = (*(*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 776  instruction_getr(struct_processus *s_eta Line 743  instruction_getr(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 =                              (*s_etat_processus).erreur_systeme =
                                     d_es_processus;                                      d_es_processus;
Line 804  instruction_getr(struct_processus *s_eta Line 772  instruction_getr(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 =                              (*s_etat_processus).erreur_systeme =
                                     d_es_processus;                                      d_es_processus;
Line 833  instruction_getr(struct_processus *s_eta Line 802  instruction_getr(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 =                          (*s_etat_processus).erreur_systeme =
                                 d_es_processus;                                  d_es_processus;
Line 857  instruction_getr(struct_processus *s_eta Line 826  instruction_getr(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 =                          (*s_etat_processus).erreur_systeme =
                                 d_es_processus;                                  d_es_processus;
Line 881  instruction_getr(struct_processus *s_eta Line 850  instruction_getr(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 =                          (*s_etat_processus).erreur_systeme =
                                 d_es_processus;                                  d_es_processus;
Line 916  instruction_getr(struct_processus *s_eta Line 885  instruction_getr(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))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 968  instruction_getr(struct_processus *s_eta Line 937  instruction_getr(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))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 1020  instruction_getr(struct_processus *s_eta Line 989  instruction_getr(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))                                          .pointeur_variable_partagee_courante)
                                         != 0)                                          .mutex)) != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_systeme =                                      (*s_etat_processus).erreur_systeme =
                                             d_es_processus;                                              d_es_processus;
Line 1066  instruction_getr(struct_processus *s_eta Line 1035  instruction_getr(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))                          .pointeur_variable_partagee_courante).mutex)) != 0)
                         != 0)  
                 {                  {
                     (*s_etat_processus).erreur_systeme =                      (*s_etat_processus).erreur_systeme =
                             d_es_processus;                              d_es_processus;
Line 1091  instruction_getr(struct_processus *s_eta Line 1059  instruction_getr(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))                      .pointeur_variable_partagee_courante).mutex)) != 0)
                     != 0)  
             {              {
                 (*s_etat_processus).erreur_systeme =                  (*s_etat_processus).erreur_systeme =
                         d_es_processus;                          d_es_processus;
Line 1114  instruction_getr(struct_processus *s_eta Line 1081  instruction_getr(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))                  .pointeur_variable_partagee_courante).mutex)) != 0)
                 != 0)  
         {          {
             (*s_etat_processus).erreur_systeme =              (*s_etat_processus).erreur_systeme =
                     d_es_processus;                      d_es_processus;

Removed from v.1.16  
changed lines
  Added in v.1.40


CVSweb interface <joel.bertrand@systella.fr>