--- rpl/src/gestion_processus.c 2010/08/30 14:14:07 1.26 +++ rpl/src/gestion_processus.c 2010/12/12 14:13:39 1.30 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.19 + RPL/2 (R) version 4.0.20 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -925,6 +925,9 @@ surveillance_processus(void *argument) (*s_etat_processus).erreur_systeme_processus_fils = d_es_processus; } + + pthread_kill((*s_argument_thread).thread_pere, + SIGINJECT); } } else @@ -3397,28 +3400,27 @@ lecture_pipe(struct_processus *s_etat_pr ================================================================================ */ -#ifndef OS2 -extern inline -#endif void scrutation_injection(struct_processus *s_etat_processus) { + char s=65; fd_set ensemble_descripteurs; + logical1 drapeau_erreur; + logical1 registre_arret_si_exception; + # if !defined(OpenBSD) && !defined(OS2) struct timespec timeout; # else struct timeval timeout; # endif - logical1 drapeau_erreur; - logical1 registre_arret_si_exception; - unsigned char tampon; unsigned char tampon_profilage[20]; // Si on est dans le processus père, il n'y a rien à surveiller. +BUG(s != 65, BACKTRACE(30)); if ((*s_etat_processus).var_volatile_processus_racine == 0) { FD_ZERO(&ensemble_descripteurs); @@ -3613,7 +3615,8 @@ scrutation_injection(struct_processus *s ================================================================================ */ -inline int test_arret(struct_processus *s_etat_processus) +int +test_arret(struct_processus *s_etat_processus) { return((int) (*s_etat_processus).var_volatile_requete_arret); }