Quelques informations: je dois écrire un programme qui contrôle certains périphériques (ceci est une fonctionnalité de base). Mais je dois écrire une sorte de système de plugin pour activer d'autres fonctionnalités personnalisées. Je n'ai aucun moyen de contrôler la qualité de la source de ces plugins, donc j'ai pensé que je vais créer un fil pour chaque plugin chargé, puis il fonctionnera dans sa propre boucle principale. Je suis capable d'attraper les exceptions C++ standard mais le problème est que je n'ai aucune idée de la façon de traiter les signaux. Le meilleur moyen serait d'annuler de façon asynchrone le thread du plugin pour lui donner la chance de nettoyer et de libérer des ressources ou simplement le tuer mais ne savez pas comment trouver le fil qui provoque le signal actuel. Existe-t-il un moyen de faire cela sans explicitement sauvegarder les informations de threads actuellement excutées dans certaines variables? Ou c'est totalement mauvaise idée et je devrais créer un processus séparé et ensuite exécuter le plugin?thread meurtrier provoquant SIGSEGV
0
A
Répondre
0
Oui, c'est totalement une mauvaise idée. Les threads sont une coopérative, partagent presque tout, un modèle de programmation qui ne fournit aucune isolation. C'est juste le mauvais outil pour ce travail.
0
Je voudrais utiliser un processus traditionnel pour obtenir une isolation totale et utiliser le mécanisme IPC pour la communication.
Questions connexes
- 1. Threads POSIX et SIGSEGV
- 2. gérer SIGSEGV sous Linux?
- 3. Crash EXC_BAD_ACCESS (SIGSEGV)
- 4. problème SIGSEGV
- 5. erreur d'exécution (SIGSEGV)
- 6. C SIGSEGV Handler & Mprotect
- 7. Thread UI .Invoke() provoquant une fuite du handle?
- 8. Des indices sur le crash "SIGSEGV"?
- 9. Whats SIGSEGV, défaut de segmentation dans Qt
- 10. GDB ne se brise pas SIGSEGV
- 11. Écran de démarrage Android provoquant ANR
- 12. cffeed provoquant des erreurs
- 13. NSDictionary provoquant EXC_BAD_ACCESS
- 14. closedir() provoquant le core
- 15. MKReverseGeocoder provoquant EXC_BAD_ACCESS?
- 16. NSTextDidEnditingNotification provoquant une erreur
- 17. DrawImage provoquant OutOfMemoryException
- 18. usleep() provoquant tout "sleep"
- 19. sigprocmask() provoquant segfault
- 20. Can gdb attacher automatiquement un processus sur un SIGSEGV
- 21. Beaucoup de SIGSEGV pendant le processus java strace'ing
- 22. C: sprintf conduit à SIGSEGV noyau par l'intermédiaire d'un strlen
- 23. Comment SIGSEGV est-il différent sur Win32 que sur Unix?
- 24. Dépendance Cache Off provoquant exception
- 25. sql parameter provoquant des problèmes
- 26. iphone sdk - stringByEvaluatingJavaScriptFromString provoquant EXC_BAD_ACCESS
- 27. Django cache.set() provoquant clé doublon
- 28. InternetAttemptConnect provoquant un plantage C++
- 29. authorizationservice provoquant l'échec de l'échec
- 30. ASP.NET MasterPageFile provoquant une erreur