Bonjour,
Voici le fonctionnement global de mon programme :
le main fork n fois, lorsqu'il fork, il crée dans le processus père un Object Process.
Celui ci contient :
- le pid du fils
- un bool pour dire si l'object ( et le process) est utilisé ou non
- une utilisation de SIGALRM avec une callback comme ceci : signal(SIGALRM, Process::killProcess);
Ducoup chaque object correspond à un processus fils identifié par son pid . si ce processus n'est pas utilisé il doit être kill au bout de 3 secondes .
Lorsque je set le bool à false je démarre l'alarme avec alarm(3) . Pour ce qui est de killProcess, je vérifie que le bool est à false . Si c'est le cas je kill le pid du fils (et donc le processus fils ..) .
voilà mon problème :
la méthode killProcess nécessite d’être déclaré en static, de ce fait je ne peux pas accéder aux attributs et méthodes de mon object dans killProcess .
malheureusement, le pid du fils est un attribut de mon object .. je peux donc pas récupérer ce pid et kill ce process ..
Comment puis je contourner ce problème ?
Merci d'avance !
Partager