Diff for /rpl/src/rplcore.c between versions 1.16 and 1.74

version 1.16, 2010/08/26 19:07:42 version 1.74, 2020/01/10 11:15:51
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.19    RPL/2 (R) version 4.1.32
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2020 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 43  rplcore(struct_processus *s_etat_process Line 43  rplcore(struct_processus *s_etat_process
     logical1                    erreur;      logical1                    erreur;
     logical1                    fin_boucle;      logical1                    fin_boucle;
   
     long                        i;      int                         longueur_lignes = 65;
     long                        j;  
     long                        longueur_lignes = 65;      integer8                    i;
       integer8                    j;
   
     struct_liste_chainee        *l_base_pile;      struct_liste_chainee        *l_base_pile;
     struct_liste_chainee        *l_element_courant;      struct_liste_chainee        *l_element_courant;
Line 63  rplcore(struct_processus *s_etat_process Line 64  rplcore(struct_processus *s_etat_process
   
     (*s_etat_processus).core = d_faux;      (*s_etat_processus).core = d_faux;
   
       cf(s_etat_processus, 34);
   
     sf(s_etat_processus, 37);      sf(s_etat_processus, 37);
     sf(s_etat_processus, 38);      sf(s_etat_processus, 38);
     sf(s_etat_processus, 39);      sf(s_etat_processus, 39);
Line 102  rplcore(struct_processus *s_etat_process Line 105  rplcore(struct_processus *s_etat_process
     }      }
   
     snprintf(nom, strlen(ds_rplcore) + 64 + 1,      snprintf(nom, strlen(ds_rplcore) + 64 + 1,
             "%s-%lu-%lu", ds_rplcore, (unsigned long) getpid(),              "%s-%llu-%llu", ds_rplcore, (unsigned long long) getpid(),
             (unsigned long) pthread_self());              (unsigned long long) pthread_self());
   
     if ((fichier = fopen(nom, "w+")) == NULL)      if ((fichier = fopen(nom, "w+")) == NULL)
     {      {
Line 142  rplcore(struct_processus *s_etat_process Line 145  rplcore(struct_processus *s_etat_process
         return;          return;
     }      }
   
     if ((*s_etat_processus).instruction_derniere_erreur != NULL)      if ((*s_etat_processus).instruction_derniere_erreur == NULL)
     {      {
         if (fprintf(fichier, "// Error :\n%s [level %lu]\n\n",          if (fprintf(fichier, "// Error :\n%s [level %lld]\n\n",
                 message_erreur, (*s_etat_processus).niveau_derniere_erreur) < 0)                  message_erreur, (*s_etat_processus).niveau_derniere_erreur) < 0)
         {          {
             free(message_erreur);              free(message_erreur);
Line 156  rplcore(struct_processus *s_etat_process Line 159  rplcore(struct_processus *s_etat_process
     else if ((*s_etat_processus).instruction_derniere_erreur[0] ==      else if ((*s_etat_processus).instruction_derniere_erreur[0] ==
             d_code_fin_chaine)              d_code_fin_chaine)
     {      {
         if (fprintf(fichier, "// Error :\n%s [level %lu]\n\n",          if (fprintf(fichier, "// Error :\n%s [level %lld]\n\n",
                 message_erreur, (*s_etat_processus).niveau_derniere_erreur) < 0)                  message_erreur, (*s_etat_processus).niveau_derniere_erreur) < 0)
         {          {
             free(message_erreur);              free(message_erreur);
Line 165  rplcore(struct_processus *s_etat_process Line 168  rplcore(struct_processus *s_etat_process
             return;              return;
         }          }
     }      }
     else if (fprintf(fichier, "// Error :\n%s [%s at level %lu]\n\n",      else if (fprintf(fichier, "// Error :\n%s [%s at level %lld]\n\n",
             message_erreur, (*s_etat_processus).instruction_derniere_erreur,              message_erreur, (*s_etat_processus).instruction_derniere_erreur,
             (*s_etat_processus).niveau_derniere_erreur) < 0)              (*s_etat_processus).niveau_derniere_erreur) < 0)
     {      {
Line 195  rplcore(struct_processus *s_etat_process Line 198  rplcore(struct_processus *s_etat_process
             (*s_etat_processus).l_base_pile_processus;              (*s_etat_processus).l_base_pile_processus;
     i = 0;      i = 0;
   
     if (pthread_mutex_trylock(&((*s_etat_processus).mutex)) == 0)      if (pthread_mutex_trylock(&((*s_etat_processus).mutex_pile_processus)) == 0)
     {      {
         while(l_element_courant != NULL)          while(l_element_courant != NULL)
         {          {
Line 203  rplcore(struct_processus *s_etat_process Line 206  rplcore(struct_processus *s_etat_process
                     (*(*l_element_courant).donnee).objet)).thread)                      (*(*l_element_courant).donnee).objet)).thread)
                     .processus_detache == d_vrai)                      .processus_detache == d_vrai)
             {              {
                 if (fprintf(fichier, "%ld: Process [%d]\n",                  if (fprintf(fichier, "%d: Process [%d]\n",
                         i++, (int) (*(*((struct_processus_fils *)                          (int) i++, (int) (*(*((struct_processus_fils *)
                         (*(*l_element_courant).donnee).objet)).thread).pid) < 0)                          (*(*l_element_courant).donnee).objet)).thread).pid) < 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;                      (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
Line 213  rplcore(struct_processus *s_etat_process Line 216  rplcore(struct_processus *s_etat_process
             }              }
             else              else
             {              {
                 if (fprintf(fichier, "%ld: Thread [%llu] from [%llu]\n",                  if (fprintf(fichier, "%ld: Thread [%llu] from [%d]\n", (int)
                         i++, (unsigned long long) (*(*((struct_processus_fils *)                          i++, (unsigned long long) (*(*((struct_processus_fils *)
                         (*(*l_element_courant).donnee).objet)).thread)                          (*(*l_element_courant).donnee).objet)).thread)
                         .tid, (unsigned long long)                          .tid, (int)
                         (*(*((struct_processus_fils *) (*(*l_element_courant)                          (*(*((struct_processus_fils *) (*(*l_element_courant)
                         .donnee).objet)).thread).pid) < 0)                          .donnee).objet)).thread).pid) < 0)
                 {                  {
Line 228  rplcore(struct_processus *s_etat_process Line 231  rplcore(struct_processus *s_etat_process
             l_element_courant = (*l_element_courant).suivant;              l_element_courant = (*l_element_courant).suivant;
         }          }
   
         if (fprintf(fichier, "%ld: Process [%d]\n\n", i,          if (fprintf(fichier, "%ld: Process [%d]\n\n", (int) i,
                 (int) getpid()) < 0)                  (int) getpid()) < 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;              (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;
             return;              return;
         }          }
   
         pthread_mutex_unlock(&((*s_etat_processus).mutex));          pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus));
     }      }
   
     if (test_cfsf(s_etat_processus, 31) == d_vrai)      if (test_cfsf(s_etat_processus, 31) == d_vrai)
Line 481  rplcore(struct_processus *s_etat_process Line 484  rplcore(struct_processus *s_etat_process
                     while(((*ptr_bis) != d_code_fin_chaine) &&                      while(((*ptr_bis) != d_code_fin_chaine) &&
                             (fin_boucle == d_faux))                              (fin_boucle == d_faux))
                     {                      {
                         if (j == (long) (*s_etat_processus).position_courante)                          if (j == (*s_etat_processus).position_courante)
                         {                          {
                             if (fprintf(fichier, ">|<") < 0)                              if (fprintf(fichier, ">|<") < 0)
                             {                              {
Line 526  rplcore(struct_processus *s_etat_process Line 529  rplcore(struct_processus *s_etat_process
                         }                          }
                     }                      }
   
                     if ((i <= (long) (*s_etat_processus).position_courante) &&                      if ((i <= (*s_etat_processus).position_courante) &&
                             ((i + longueur_lignes) > (long) (*s_etat_processus)                              ((i + longueur_lignes) > (*s_etat_processus)
                             .position_courante))                              .position_courante))
                     {                      {
                         if (fprintf(fichier, "\nError  : ") < 0)                          if (fprintf(fichier, "\nError  : ") < 0)

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


CVSweb interface <joel.bertrand@systella.fr>