Il y a ConnectionManager
qui attend les connexions entrantes. Pour chaque connexion entrante, elle crée une instance Connection
qui gère le trafic entrant et sortant sur cette connexion. Chaque Connection
a un Watchdog
qui gère les conditions de "mauvaise connexion" et les appels enregistrés "Listerners". Un "Listener" est le ConnectionManager
qui ferme la connexion et supprime l'instance Connection
qui à son tour supprime le chien de garde correspondant.Problème de filetage (poursuite de votre propre queue)
Attendre. Une minute.
Le Watchdog
appelle la ConnectionManager
qui supprime le Connection
qui supprime le Watchdog
? Le chien de garde poursuit sa propre queue.
Je suis complètement bloqué. Comment résoudre ça?
Solution: Je ferai asynchrone Listener thingy barbante Je ne sais pas encore comment faire cela sans trop de douleur. Le Watchdog
ne connaît pas le ConnectionManager
. C'est assez générique. Aussi le Win32-Thread-API n'a pas quelque chose comme "join", donc je pourrais avoir besoin de rouler le mien avec GetExitCodeThread()
et STILL_ACTIVE
...
Merci, les gars.
Je suis confus par la question - si vous avez 1 chien de garde par connexion et que chien de garde est déclenchée, vous voulez la connexion (et son chien de garde associé) à supprimer, non? – LeJeune