Existe-t-il un moyen de suspendre temporairement et de reprendre un groupe entier de threads, sans utiliser de variables de condition ou d'autres primitives de synchronisation dans les threads?Suspendre et reprendre des threads
pthread_kill
affecte le processus entier, il ne peut donc pas être utilisé pour suspendre des threads, mais y a-t-il un appel système de bas niveau pour Linux/Windows/Darwin?
La raison est qu'il doit y avoir un module de diagnostic qui s'exécute lui-même sur un thread différent. Il devrait geler périodiquement un programme multi-thread complet, puis lire certaines variables (atomiques) des autres threads.
Dans Windows, le débogueur de Visual Studio peut faire une pause tout, mais il s'exécute à partir d'un processus distinct, et probablement en utilisant DebugBreakProcess(). Je ne suis pas sûr comment il localise les variables du processus en cours de débogage. – rcgldr