--- rpl/src/instructions_s10.c 2010/04/21 12:30:26 1.8 +++ rpl/src/instructions_s10.c 2010/05/25 18:09:44 1.12 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.14 + RPL/2 (R) version 4.0.16 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -265,6 +265,12 @@ instruction_spawn(struct_processus *s_et return; } + if (sigaddset(&set, SIGFABORT) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } + if (sigaddset(&set, SIGURG) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; @@ -454,13 +460,25 @@ instruction_spawn(struct_processus *s_et (*s_argument_thread).set = set; (*s_argument_thread).oldset = oldset; +# ifdef DEBUG_MEMOIRE + debug_memoire_verrouillage(); +# endif + if (pthread_create(&thread_id, &attributs, lancement_thread, s_argument_thread) != 0) { +# ifdef DEBUG_MEMOIRE + debug_memoire_deverrouillage(); +# endif + (*s_etat_processus).erreur_systeme = d_es_processus; return; } +# ifdef DEBUG_MEMOIRE + debug_memoire_deverrouillage(); +# endif + if (pthread_attr_destroy(&attributs) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; @@ -642,13 +660,25 @@ instruction_spawn(struct_processus *s_et // Lancement du thread de surveillance +# ifdef DEBUG_MEMOIRE + debug_memoire_verrouillage(); +# endif + if (pthread_create(&thread_surveillance, &attributs, surveillance_processus, s_argument_thread) != 0) { +# ifdef DEBUG_MEMOIRE + debug_memoire_deverrouillage(); +# endif + (*s_etat_processus).erreur_systeme = d_es_processus; return; } +# ifdef DEBUG_MEMOIRE + debug_memoire_deverrouillage(); +# endif + if (pthread_attr_destroy(&attributs) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus;