Bonjour,
Je dispose d'une fonction, nommons la f. Cette fonction, je ne l'ai pas écrite, et je ne veux pas avoir à la modifier.
Le principal souci de cette fonction est son temps d’exécution qui peut varier entre 0 secondes et plusieurs jours en fonction de la "chance" (l'algorithme est probabiliste), et des données en entrée. Je ne sais pas quelles sont les données considérées comme dures (ou plutôt j'ai une vague idée, mais ce n'est pas suffisant).
Ce que j'aimerais faire, c'est exécuter cette fonction dans un thread séparé et dans le thread principal faire un timer qui termine le thread au bout de 10 minutes par exemple.
Le problème : Je ne peux avec std::thread interrompre proprement un thread "sans son accord". Or, je ne peux mettre de "breakpoints", dans la fonction f.
Avez-vous une solution à ce problème (indépendant de l'OS et qui utilise std::thread si possible) ?
Note : mettre le thread en sleep n'est pas vraiment une solution satisfaisante...
Merci
Partager