Diff for /rpl/src/instructions_d5.c between versions 1.150 and 1.151

version 1.150, 2016/03/29 12:28:02 version 1.151, 2016/04/06 21:14:56
Line 1288  instruction_detach(struct_processus *s_e Line 1288  instruction_detach(struct_processus *s_e
          * Processus fils           * Processus fils
          */           */
   
           // EPERM
         pthread_mutex_destroy(&mutex_liste_variables_partagees);          pthread_mutex_destroy(&mutex_liste_variables_partagees);
         pthread_mutex_destroy(&mutex_liste_threads);          pthread_mutex_destroy(&mutex_liste_threads);
   
Line 2805  instruction_detach(struct_processus *s_e Line 2806  instruction_detach(struct_processus *s_e
             liberation_profil(s_etat_processus);              liberation_profil(s_etat_processus);
         }          }
   
         closelog();          attente.tv_sec = 0;
           attente.tv_nsec = GRANULARITE_us * 1000;
   
         close((*s_argument_thread).pipe_erreurs[1]);          while(nombre_thread_surveillance_processus != 0)
         close((*s_argument_thread).pipe_interruptions[1]);          {
         close((*s_argument_thread).pipe_nombre_elements_attente[1]);              nanosleep(&attente, NULL);
         close((*s_argument_thread).pipe_objets[1]);              INCR_GRANULARITE(attente.tv_nsec);
         close((*s_argument_thread).pipe_injections[0]);          }
         close((*s_argument_thread).pipe_nombre_injections[0]);  
         close((*s_argument_thread).pipe_acquittement[0]);          closelog();
   
         retrait_thread(s_etat_processus);          retrait_thread(s_etat_processus);
           liberation_contexte_cas(s_etat_processus);
           destruction_queue_signaux(s_etat_processus);
   
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
         sem_post(&((*s_etat_processus).semaphore_fork));          sem_post(&((*s_etat_processus).semaphore_fork));
Line 2828  instruction_detach(struct_processus *s_e Line 2832  instruction_detach(struct_processus *s_e
   
         clear_history();          clear_history();
   
         liberation_contexte_cas(s_etat_processus);          close((*s_argument_thread).pipe_erreurs[1]);
         destruction_queue_signaux(s_etat_processus);          close((*s_argument_thread).pipe_interruptions[1]);
           close((*s_argument_thread).pipe_nombre_elements_attente[1]);
           close((*s_argument_thread).pipe_objets[1]);
           close((*s_argument_thread).pipe_injections[0]);
           close((*s_argument_thread).pipe_nombre_injections[0]);
           close((*s_argument_thread).pipe_acquittement[0]);
   
         free((*s_etat_processus).localisation);          free((*s_etat_processus).localisation);
         free((*s_etat_processus).chemin_fichiers_temporaires);          free((*s_etat_processus).chemin_fichiers_temporaires);
Line 2838  instruction_detach(struct_processus *s_e Line 2847  instruction_detach(struct_processus *s_e
         liberation_allocateur(s_etat_processus);          liberation_allocateur(s_etat_processus);
         liberation_allocateur_buffer(s_etat_processus);          liberation_allocateur_buffer(s_etat_processus);
   
         attente.tv_sec = 0;  
         attente.tv_nsec = GRANULARITE_us * 1000;  
   
         while(nombre_thread_surveillance_processus != 0)  
         {  
             nanosleep(&attente, NULL);  
             INCR_GRANULARITE(attente.tv_nsec);  
         }  
   
         pthread_mutex_destroy(&((*s_etat_processus).mutex_pile_processus));          pthread_mutex_destroy(&((*s_etat_processus).mutex_pile_processus));
         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).mutex_interruptions));
Line 2854  instruction_detach(struct_processus *s_e Line 2854  instruction_detach(struct_processus *s_e
         pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));          pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));
         pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation_buffer));          pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation_buffer));
         pthread_mutex_destroy(&mutex_sections_critiques);          pthread_mutex_destroy(&mutex_sections_critiques);
           pthread_mutex_destroy(&mutex_liste_variables_partagees);
           pthread_mutex_destroy(&mutex_liste_threads);
   
         sys_free(s_etat_processus);          sys_free(s_etat_processus);
   

Removed from v.1.150  
changed lines
  Added in v.1.151


CVSweb interface <joel.bertrand@systella.fr>