Diff for /rpl/src/instructions_d4.c between versions 1.45 and 1.46

version 1.45, 2012/12/19 09:58:24 version 1.46, 2012/12/21 12:09:50
Line 42  instruction_delete(struct_processus *s_e Line 42  instruction_delete(struct_processus *s_e
   
     file                        *fichier;      file                        *fichier;
   
       int                         ios;
   
     integer8                    lecture_i64;      integer8                    lecture_i64;
   
     logical1                    erreur;      logical1                    erreur;
Line 59  instruction_delete(struct_processus *s_e Line 61  instruction_delete(struct_processus *s_e
   
     struct stat                 requete;      struct stat                 requete;
   
       struct timespec             attente;
   
     unsigned char               *commande;      unsigned char               *commande;
     unsigned char               *nom;      unsigned char               *nom;
     unsigned char               *utf8;      unsigned char               *utf8;
Line 323  instruction_delete(struct_processus *s_e Line 327  instruction_delete(struct_processus *s_e
                     return;                      return;
                 }                  }
   
                 if (sqlite3_step(ppStmt) != SQLITE_ROW)                  attente.tv_sec = 0;
                   attente.tv_nsec = GRANULARITE_us * 1000;
   
                   do
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;                      ios = sqlite3_step(ppStmt);
                     return;  
                 }                      if (ios == SQLITE_ROW)
                       {
                           break;
                       }
                       else if ((ios == SQLITE_BUSY) || (ios == SQLITE_LOCKED))
                       {
                           nanosleep(&attente, NULL);
                           INCR_GRANULARITE(attente.tv_nsec);
                       }
                       else
                       {
                           (*s_etat_processus).erreur_systeme =
                                   d_es_erreur_fichier;
                           return;
                       }
                   } while(ios != SQLITE_ROW);
   
                 lecture_i64 = sqlite3_column_int64(ppStmt, 0);                  lecture_i64 = sqlite3_column_int64(ppStmt, 0);
   
Line 437  instruction_delete(struct_processus *s_e Line 459  instruction_delete(struct_processus *s_e
                     return;                      return;
                 }                  }
   
                 switch(sqlite3_step(ppStmt))                  attente.tv_sec = 0;
                   attente.tv_nsec = GRANULARITE_us * 1000;
   
                   do
                 {                  {
                     case SQLITE_ROW:                      ios = sqlite3_step(ppStmt);
                     {  
                         // Correspondance  
                         break;  
                     }  
   
                     case SQLITE_DONE:                      switch(ios)
                     {                      {
                         // Aucune correspondance                          case SQLITE_ROW:
                         if (sqlite3_finalize(ppStmt) != SQLITE_OK)  
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              // Correspondance
                                     d_es_erreur_fichier;                              break;
                             return;  
                         }                          }
   
                         free(commande);                          case SQLITE_DONE:
                           {
                               // Aucune correspondance
                               if (sqlite3_finalize(ppStmt) != SQLITE_OK)
                               {
                                   (*s_etat_processus).erreur_systeme =
                                           d_es_erreur_fichier;
                                   return;
                               }
   
                         liberation(s_etat_processus, s_objet_argument);                              free(commande);
                         liberation(s_etat_processus, s_objet_indice);  
   
                         (*s_etat_processus).erreur_execution =                              liberation(s_etat_processus, s_objet_argument);
                                 d_ex_enregistrement_inexistant;                              liberation(s_etat_processus, s_objet_indice);
                         return;  
                     }  
   
                     default:                              (*s_etat_processus).erreur_execution =
                     {                                      d_ex_enregistrement_inexistant;
                         (*s_etat_processus).erreur_systeme =                              return;
                                 d_es_erreur_fichier;                          }
                         return;  
                           case SQLITE_LOCKED:
                           case SQLITE_BUSY:
                           {
                               nanosleep(&attente, NULL);
                               INCR_GRANULARITE(attente.tv_nsec);
                               break;
                           }
   
                           default:
                           {
                               (*s_etat_processus).erreur_systeme =
                                       d_es_erreur_fichier;
                               return;
                           }
                     }                      }
                 }                  } while(ios != SQLITE_ROW);
   
                 if (sqlite3_column_type(ppStmt, 0) != SQLITE_INTEGER)                  if (sqlite3_column_type(ppStmt, 0) != SQLITE_INTEGER)
                 {                  {

Removed from v.1.45  
changed lines
  Added in v.1.46


CVSweb interface <joel.bertrand@systella.fr>