--- rpl/src/gestion_threads.c 2010/01/27 22:22:11 1.2 +++ rpl/src/gestion_threads.c 2010/04/17 18:57:35 1.8 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.10 + RPL/2 (R) version 4.0.14 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -78,8 +78,13 @@ lancement_thread(void *argument) (*s_argument_thread).thread_actif = d_vrai; s_etat_processus = (*s_argument_thread).s_nouvel_etat_processus; +# ifndef SEMAPHORES_NOMMES if (pthread_setspecific(semaphore_fork_processus_courant, &((*s_etat_processus).semaphore_fork)) != 0) +# else + if (pthread_setspecific(semaphore_fork_processus_courant, + (*s_etat_processus).semaphore_fork) != 0) +# endif { (*s_etat_processus).erreur_systeme = d_es_processus; @@ -402,7 +407,14 @@ lancement_thread(void *argument) .donnee)).pid == getpid()) { fclose((*((struct_descripteur_fichier *) - (*l_element_courant).donnee)).descripteur); + (*l_element_courant).donnee)).descripteur_c); + + if ((*((struct_descripteur_fichier *) + (*l_element_courant).donnee)).type != 'C') + { + sqlite3_close((*((struct_descripteur_fichier *) + (*l_element_courant).donnee)).descripteur_sqlite); + } if ((*((struct_descripteur_fichier *) (*l_element_courant) .donnee)).effacement == 'Y')