Diff for /rpl/src/gestion_threads.c between versions 1.80 and 1.82

version 1.80, 2013/05/22 09:05:20 version 1.82, 2013/05/28 22:09:55
Line 664  lancement_thread(void *argument) Line 664  lancement_thread(void *argument)
             }              }
         }          }
   
         pthread_mutex_unlock(&((*s_etat_processus).mutex));          if (pthread_mutex_lock(&((*s_etat_processus).mutex_interruptions)) != 0)
           {
               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)
           {
               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));
         nanosleep(&attente, NULL);          nanosleep(&attente, NULL);
         pthread_mutex_lock(&((*s_etat_processus).mutex));          pthread_mutex_lock(&((*s_etat_processus).mutex));
     }      }
Line 998  lancement_thread(void *argument) Line 1014  lancement_thread(void *argument)
     retrait_thread(s_etat_processus);      retrait_thread(s_etat_processus);
     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));
   
 #   ifndef SEMAPHORES_NOMMES  #   ifndef SEMAPHORES_NOMMES
         sem_destroy(&((*s_etat_processus).semaphore_fork));          sem_destroy(&((*s_etat_processus).semaphore_fork));
Line 1011  lancement_thread(void *argument) Line 1028  lancement_thread(void *argument)
     free(s_etat_processus);      free(s_etat_processus);
   
     pthread_mutex_lock(&((*s_argument_thread).mutex));      pthread_mutex_lock(&((*s_argument_thread).mutex));
       (*s_argument_thread).thread_actif = d_faux;
     pthread_mutex_unlock(&((*s_argument_thread).mutex));      pthread_mutex_unlock(&((*s_argument_thread).mutex));
   
     (*s_argument_thread).thread_actif = d_faux;  
     pthread_exit(NULL);      pthread_exit(NULL);
     return(NULL);      return(NULL);
 }  }

Removed from v.1.80  
changed lines
  Added in v.1.82


CVSweb interface <joel.bertrand@systella.fr>