quelqu'un peut-il me dire ce qui se passe si le programme multithread reçoit le signal SIGSTOP pendant l'exécution de mq_send?mq_send est-il atomique?
4
A
Répondre
2
La page de manuel pour mq_send
indique qu'elle est implémentée au-dessus de mq_timedsend
, qui est un appel système sous Linux. Les appels système sont généralement atomiques en ce qu'ils réussissent ou non. Si un appel système est interrompu par un signal, le comportement habituel est de retourner -1 et de définir errno
à EINTR
. Il semble que mq_send
a ce comportement.
Fondamentalement, vous devriez vérifier EINTR
, et réessayez l'appel si elle échoue de cette manière. Ceci est particulièrement important pour les appels système qui peuvent bloquer comme recv
ou select
, car ils ont plus de chance d'être interrompus.
Questions connexes
- 1. Variante atomique Vs. Opération atomique
- 2. Quelle est la différence entre «atomique» et non-atomique?
- 3. atomique sous .NET
- 4. Compteur atomique en gcc
- 5. est python variable assignation atomique?
- 6. PHP Créer un flux atomique
- 7. Ecriture de la fonction atomique
- 8. Échange atomique dans GNU C++
- 9. Stockage d'état atomique en Python?
- 10. atomique INSERT/SELECT dans HSQLDB
- 11. mpi atomique lire/modifier/écrire
- 12. Comment lire l'alimentation atomique .NET
- 13. Est-ce que SetEvent est atomique?
- 14. Win32: Exécution atomique du bloc de code
- 15. Est incrémentation d'un champ dans MySQL atomique?
- 16. JPA demande atomique/enregistrer pour l'application multithread
- 17. L'implémentation de ClearCase majoritairement atomique valide
- 18. Espace nom atomique avec php simplexml
- 19. Implémentation du modèle atomique C++ 0x
- 20. Modification atomique de fichiers sur plusieurs réseaux
- 21. Appel d'un service Web de manière atomique?
- 22. Oracle 11g renommer. Garanti d'être atomique?
- 23. Est-ce qu'un verrou (filetage) atomique?
- 24. Problèmes d'attribution Java - Est-ce atomique?
- 25. Java ConcurrentHashMap atomique get si présent
- 26. Variables d'instance, par défaut étant atomique
- 27. Est-ce que SPLFileObject est atomique?
- 28. Quelle est l'utilisation atomique de Berkeley DB?
- 29. Scripts de mise à niveau atomique
- 30. recherche d'un fichier de page atomique/journalisé dans Java
donc, j'ai fait un test sur ma machine Linux (Linux home 2.6.31-11-générique # 38-Ubuntu SMP Fri Oct 2 11:06:40 UTC 2009 x86_64 GNU/Linux) et il semble être atomique , mais je ne suis pas sûr à 100%. Si quelqu'un connaît la réponse exacte ou sait comment fonctionne mq_send, il serait bon de partager des informations avec nous :) – iddqd