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.