Diff for /rpl/src/instructions_d5.c between versions 1.110 and 1.111

version 1.110, 2013/05/23 12:45:08 version 1.111, 2013/05/28 22:09:55
Line 1452  instruction_detach(struct_processus *s_e Line 1452  instruction_detach(struct_processus *s_e
             exit(EXIT_FAILURE);              exit(EXIT_FAILURE);
         }          }
   
           pthread_mutex_trylock(&((*s_etat_processus).mutex_interruptions));
   
           if (pthread_mutex_unlock(&((*s_etat_processus).mutex_interruptions))
                   != 0)
           {
               (*s_etat_processus).erreur_systeme = d_es_processus;
   
               caractere = 0;
   
               while((longueur_ecriture = write_atomic(s_etat_processus,
                       (*s_argument_thread).pipe_nombre_elements_attente[1],
                       &caractere, sizeof(caractere))) != sizeof(caractere))
               {
                   if (longueur_ecriture == -1)
                   {
                       break;
                   }
               }
   
               destruction_queue_signaux(s_etat_processus);
               BUG(1, uprintf("Process management error line %d\n", __LINE__));
               exit(EXIT_FAILURE);
           }
   
         if ((*s_etat_processus).evaluation_expression_compilee == 'N')          if ((*s_etat_processus).evaluation_expression_compilee == 'N')
         {          {
             free((*s_etat_processus).instruction_courante);              free((*s_etat_processus).instruction_courante);
Line 2367  instruction_detach(struct_processus *s_e Line 2391  instruction_detach(struct_processus *s_e
                 }                  }
             }              }
   
               if (pthread_mutex_lock(&((*s_etat_processus).mutex_interruptions))
                       != 0)
               {
                   destruction_queue_signaux(s_etat_processus);
   
                   pthread_mutex_unlock(&((*s_etat_processus).mutex));
                   (*s_etat_processus).erreur_systeme = d_es_processus;
                   exit(EXIT_FAILURE);
               }
   
             if ((*s_etat_processus).nombre_interruptions_non_affectees != 0)              if ((*s_etat_processus).nombre_interruptions_non_affectees != 0)
             {              {
                 affectation_interruptions_logicielles(s_etat_processus);                  affectation_interruptions_logicielles(s_etat_processus);
             }              }
   
               if (pthread_mutex_unlock(&((*s_etat_processus)
                       .mutex_interruptions)) != 0)
               {
                   destruction_queue_signaux(s_etat_processus);
   
                   pthread_mutex_unlock(&((*s_etat_processus).mutex));
                   (*s_etat_processus).erreur_systeme = d_es_processus;
                   exit(EXIT_FAILURE);
               }
   
             pthread_mutex_unlock(&((*s_etat_processus).mutex));              pthread_mutex_unlock(&((*s_etat_processus).mutex));
             nanosleep(&attente, NULL);              nanosleep(&attente, NULL);
             pthread_mutex_lock(&((*s_etat_processus).mutex));              pthread_mutex_lock(&((*s_etat_processus).mutex));
Line 2704  instruction_detach(struct_processus *s_e Line 2748  instruction_detach(struct_processus *s_e
   
         pthread_mutex_destroy(&((*s_etat_processus).mutex));          pthread_mutex_destroy(&((*s_etat_processus).mutex));
         pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));          pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));
           pthread_mutex_destroy(&((*s_etat_processus).mutex_interruptions));
         pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));          pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));
         pthread_mutex_destroy(&mutex_sections_critiques);          pthread_mutex_destroy(&mutex_sections_critiques);
   

Removed from v.1.110  
changed lines
  Added in v.1.111


CVSweb interface <joel.bertrand@systella.fr>