version 1.85, 2011/09/15 17:51:44
|
version 1.89, 2011/09/20 07:16:40
|
Line 23
|
Line 23
|
#define MAIN_RPL |
#define MAIN_RPL |
#include "rpl-conv.h" |
#include "rpl-conv.h" |
|
|
#ifdef IPCS_SYSV |
|
#ifndef OS2 |
|
unsigned char *chemin_semaphores_SysV; |
|
#endif |
|
#endif |
|
|
|
|
|
/* |
/* |
================================================================================ |
================================================================================ |
Line 118 rplinit(int argc, char *argv[], unsigned
|
Line 112 rplinit(int argc, char *argv[], unsigned
|
# ifndef SEMAPHORES_NOMMES |
# ifndef SEMAPHORES_NOMMES |
sem_init(&semaphore_gestionnaires_signaux, 0, 0); |
sem_init(&semaphore_gestionnaires_signaux, 0, 0); |
# else |
# else |
semaphore_gestionnaires_signaux = sem_init2(0, sem_gestionnaires_signaux); |
semaphore_gestionnaires_signaux = sem_init2(0, getpid()); |
|
|
if (semaphore_gestionnaires_signaux == SEM_FAILED) |
if (semaphore_gestionnaires_signaux == SEM_FAILED) |
{ |
{ |
Line 225 rplinit(int argc, char *argv[], unsigned
|
Line 219 rplinit(int argc, char *argv[], unsigned
|
(*s_etat_processus).chemin_fichiers_temporaires = |
(*s_etat_processus).chemin_fichiers_temporaires = |
recherche_chemin_fichiers_temporaires(s_etat_processus); |
recherche_chemin_fichiers_temporaires(s_etat_processus); |
|
|
# ifdef IPCS_SYSV |
|
# ifndef OS2 |
|
chemin_semaphores_SysV = |
|
(*s_etat_processus).chemin_fichiers_temporaires; |
|
# endif |
|
# endif |
|
|
|
insertion_thread(s_etat_processus, d_vrai); |
insertion_thread(s_etat_processus, d_vrai); |
creation_queue_signaux(s_etat_processus); |
creation_queue_signaux(s_etat_processus); |
|
|
Line 600 rplinit(int argc, char *argv[], unsigned
|
Line 587 rplinit(int argc, char *argv[], unsigned
|
option_t = d_faux; |
option_t = d_faux; |
option_v = d_faux; |
option_v = d_faux; |
|
|
|
// Lorsque le programme est appelé depuis un shebang, argv[0] contient |
|
// le chemin du programme et argv[1] tous les arguments. |
|
// argv[2] contient quant à lui le nom du script RPL/2. |
|
// |
|
// Exemple : |
|
// argv[0] : /usr/local/bin/rpl |
|
// argv[1] : -csdp -t 800 |
|
// argv[2] : ./on_exit.rpl |
|
|
while((--argc) > 0) |
while((--argc) > 0) |
{ |
{ |
if ((*(++argv))[0] == '-') |
if ((*(++argv))[0] == '-') |
Line 1395 rplinit(int argc, char *argv[], unsigned
|
Line 1391 rplinit(int argc, char *argv[], unsigned
|
break; |
break; |
} |
} |
|
|
|
case '-': |
|
case ' ': |
|
{ |
|
break; |
|
} |
|
|
default : |
default : |
{ |
{ |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
Line 2624 rplinit(int argc, char *argv[], unsigned
|
Line 2626 rplinit(int argc, char *argv[], unsigned
|
lancement_daemon(s_etat_processus); |
lancement_daemon(s_etat_processus); |
} |
} |
|
|
// A FIXER |
|
// création signaux |
|
if (option_p == d_faux) |
if (option_p == d_faux) |
{ |
{ |
if (setjmp(contexte_initial) == 0) |
if (setjmp(contexte_initial) == 0) |
Line 2668 rplinit(int argc, char *argv[], unsigned
|
Line 2668 rplinit(int argc, char *argv[], unsigned
|
} |
} |
} |
} |
} |
} |
// A FIXER |
|
// destruction signaux |
|
} |
} |
|
|
liberation(s_etat_processus, (*s_etat_processus).at_exit); |
liberation(s_etat_processus, (*s_etat_processus).at_exit); |
Line 3489 rplinit(int argc, char *argv[], unsigned
|
Line 3487 rplinit(int argc, char *argv[], unsigned
|
sem_destroy(&semaphore_gestionnaires_signaux); |
sem_destroy(&semaphore_gestionnaires_signaux); |
# else |
# else |
sem_post(semaphore_gestionnaires_signaux); |
sem_post(semaphore_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, sem_gestionnaires_signaux); |
sem_destroy2(semaphore_gestionnaires_signaux, getpid()); |
# endif |
# endif |
|
|
destruction_queue_signaux(s_etat_processus); |
destruction_queue_signaux(s_etat_processus); |