--- rpl/src/instructions_d5.c 2010/08/06 15:33:00 1.34 +++ rpl/src/instructions_d5.c 2010/08/13 21:00:37 1.35 @@ -890,6 +890,19 @@ instruction_detach(struct_processus *s_e return; } +# ifdef _BROKEN_SIGINFO + if ((*s_etat_processus).langue == 'F') + { + printf("+++Attention : Support des processus multiples indisponible\n"); + } + else + { + printf("+++Attention : Multiprocess unavailable\n"); + } + + return; +# endif + if (test_cfsf(s_etat_processus, 31) == d_vrai) { if (empilement_pile_last(s_etat_processus, 1) == d_erreur) @@ -1159,6 +1172,17 @@ instruction_detach(struct_processus *s_e verrouillage_threads_concurrents(s_etat_processus); (*s_argument_thread).pid = fork(); + +# ifdef OS2 + if ((*s_argument_thread).pid == 0) + { + sem_init(&semaphore_liste_threads, 0, 1); + sem_init(&semaphore_gestionnaires_signaux, 0, 0); + sem_init(&semaphore_gestionnaires_signaux_atomique, 0, 1); + sem_init(&((*s_etat_processus).semaphore_fork), 0, 0); + } +# endif + deverrouillage_threads_concurrents(s_etat_processus); pthread_sigmask(SIG_SETMASK, &oldset2, NULL);