Hello,
J'ai un problème avec les threads. Je n'ai pas une grande expérience de ces bêtes, alors si vous avez des idées qui vous semblent stupides, n'hésitez pas.
Je code un plug-in, dans lequel je peux définir une fonction de callback appelée lorsque se produisent certains événements signalés par l'application hôte.
Dans cette fonction de callback se trouvant dans une classe, je crée à l'aide d'une API externe (non liée à l'application hôte) un thread, qui appelle une autre fonction de cette classe. Cette dernière fonction crée également des threads.
Appellons A la fonction de callback, et B la fonction appelée par A.
Nous avons : événement -> A -> B
Le traitement effectué par A, et surtout par B, peut être assez long.
Pendant ce laps de temps peuvent survenir de nouveaux événements. Je souhaite que dans ce cas, tout soit arrêté, et que l'appel à la fonction de callback initie un nouveau traitement.
Pour l'instant, si j'attends que le 1er traitement se termine, cela fonctionne.
Mais si j'ai le malheur de déclencher un événement alors qu'un traitement est toujours en cours, ça plante méchamment. Je n'arrive même pas dans la fonction de callback. La pile des appels de fonction ne me donne aucune info valable.
Partager