J'ai une application multithread écrite en C++. Et j'utilise mutex pour les écritures de fichiers. Je soupçonne que quelque part pendant l'exécution du programme, le mutex n'est pas libéré.
Donc je me demandais s'il y avait un moyen de vérifier les verrous et les libérations de mutex sur un fichier, par programmation ou autrement.
Je cours le code sur SuseLinux, btw.
Merci,Vérification de la version de Mutex
Répondre
Bienvenue dans le monde merveilleux du débogage du code multi-thread. Il n'y a pas de solution miracle pour résoudre vos problèmes, mais vous devriez au moins utiliser les idiomes RAII pour gérer votre mutex. Cela signifie que le mutex est enveloppé dans une classe C++ qui revendique le mutex lorsque des instances de la classe sont créées et le libère quand il (l'instance de classe) est détruit. Vous pouvez également enregistrer de manière rentable les revendications/versions, mais sachez que cela peut entraîner l'introduction de bogues et d'artefacts.
Boost :: Threads bibliothèque a un très bel ensemble de RAVE mutex portable ... aide beaucoup à éviter les interblocages de verrouillage persistante. – paxos1977
- 1. Vérification de la validité du numéro de version avec Perl
- 2. Vérification de la version de Flash Player en utilisant Javascript
- 3. C# FtpWebRequest Vérification de la version du fichier
- 4. Vérification de la version JRE dans le navigateur
- 5. vérification de la version avant l'application lancement du cacao
- 6. Vérification de la version du fichier dans Ruby sous Windows
- 7. Vérification d'une version de module Python à l'exécution
- 8. Problème de condition de lancement de WISE Windows Installer Editor - Vérification de la version
- 9. C Pthreads valeurs de mutex?
- 10. Mesure de la latence de mutex ou de futex
- 11. Obtenez une liste de mutex?
- 12. Vérification de la contrainte
- 13. boost :: mutex/Comment tester si un mutex est verrouillé
- 14. Vérification de la version de .NET requise pour exécuter mon code
- 15. Version de la version de la CLI de PHP
- 16. Quoi de mieux pour une file d'attente de messages? mutex & cond ou mutex et sémaphore?
- 17. Sélection du mutex ou du mutex fictif à l'exécution
- 18. Mutex non libéré
- 19. Vérification de la version de l'interprète Python lors de l'exécution de script avec la syntaxe non valide
- 20. vérification de la syntaxe git hook
- 21. Vérification de la syntaxe PHP?
- 22. Vérification de la liaison jquery
- 23. Vérification de la connexion Internet
- 24. Vérification de la transition d'état
- 25. Ajax/JQuery accès à la base de données/mutex
- 26. Saut DataContractSerializer OpenAccess Version de la version
- 27. erreurs de codes thread-mutex C?
- 28. Mutex nécessaire dans MSMQ?
- 29. Mutex Stored Procédure
- 30. Est-ce la bonne utilisation d'un mutex?
Le problème était en fait quelque chose d'autre, apparemment ridicule. Je n'ai pas initialisé une variable bool dans certains constructeurs en supposant qu'elle serait initialisée à false par défaut. Maintenant, si vous vous demandez comment pourrais-je être confus si le problème était dû à un mutex ou une mauvaise initialisation; Eh bien, si vous avez regardé le code, je suppose que vous comprendrez. Quoi qu'il en soit, merci pour les réponses. Ils ont été utiles. – rabin