--- rpl/src/daemon.c 2012/01/05 10:18:58 1.39 +++ rpl/src/daemon.c 2015/01/05 13:12:30 1.60 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.5 - Copyright (C) 1989-2012 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.19 + Copyright (C) 1989-2015 Dr. BERTRAND Joël This file is part of RPL/2. @@ -75,19 +75,13 @@ lancement_daemon(struct_processus *s_eta // sémaphores anonymes POSIX ou la sémantique SysV, il faut // détruire les sémaphores et les recréer dans le processus fils. -# ifndef SEMAPHORE_NOMMES +# ifndef SEMAPHORES_NOMMES sem_post(&((*s_etat_processus).semaphore_fork)); sem_destroy(&((*s_etat_processus).semaphore_fork)); - - sem_post(&semaphore_gestionnaires_signaux); - sem_destroy(&semaphore_gestionnaires_signaux); # else sem_post((*s_etat_processus).semaphore_fork); sem_destroy3((*s_etat_processus).semaphore_fork, getpid(), pthread_self(), SEM_FORK); - - sem_post(semaphore_gestionnaires_signaux); - sem_destroy2(semaphore_gestionnaires_signaux, getpid(), SEM_SIGNAUX); # endif destruction_queue_signaux(s_etat_processus); @@ -108,9 +102,12 @@ lancement_daemon(struct_processus *s_eta return; } +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wunused-result" freopen("/dev/null", "r", stdin); freopen("/dev/null", "w", stdout); freopen("/dev/null", "w", stderr); +# pragma GCC diagnostic pop /* * Second fork pour ne plus être un session leader. @@ -135,25 +132,6 @@ lancement_daemon(struct_processus *s_eta creation_queue_signaux(s_etat_processus); modification_pid_thread_pere(s_etat_processus); -# ifndef SEMAPHORES_NOMMES - sem_init(&semaphore_gestionnaires_signaux, 0, 0); - sem_init(&((*s_etat_processus).semaphore_fork), 0, 0); -# else - if ((semaphore_gestionnaires_signaux = sem_init2(0, getpid(), SEM_SIGNAUX)) - == SEM_FAILED) - { - (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; - return; - } - - if ((sem_init(&((*s_etat_processus).semaphore_fork), 0, 0)) - == SEM_FAILED) - { - (*s_etat_processus).erreur_systeme = d_es_allocation_memoire; - return; - } -# endif - return; }