Bonjour
Je cherche � cr�er une librairie/API en C++ pour cr�er des process dont l'ex�cution sera pilot�e par d'autres processus via des signaux. Je veux pouvoir lancer plusieurs processus et les arr�ter ind�pendamment.
J'utilise la fonction suivante : signal(SIGUSR1, CaptureProcess::handler) qui est issue de l'API C standard, pour assigner un handler � la r�ception d'un signal.
Cet handler est ensuite sens� aller modifier les attributs d'une classe ce qui influera sur l'ex�cution des fonctions de celle-ci.
Il semble que ce handler ne puisse malheureusement pas �tre d�finie autrement que par une m�thode statique dans la classe.
Cela pose un probl�me dans la mesure o� cela m'emp�che de piloter l'ex�cution de chaque thread ind�pendamment car je ne peux pas acc�der � des attributs de la classe qui ne soit pas statique.
Est-il possible d'assigner une m�thode de ma classe comme handler via la fonction signal (ou une autre m�thode) ?
Une autre solution consisterai � cr�er une structure de donn�es statique (via un vector par exemple) qui contiendrait l'ensemble des processus de conna�tre leur �tat courant. Chaque processus irait alors lire son �tat dans dans cette structure et piloterai son ex�cution en cons�quence. Cette solution me semble cependant un peu lourde � mettre en place en particulier au niveau du contr�le de l'acc�s concurrent � cette structure de donn�e.
Mes questions sont donc : existe-t-il une solution � mon probl�me au niveau du handler ? et est-ce que ma seconde solution est viable ?
Merci d'avance pour l'aide.
Partager