In einem Linux-System mit mehreren Prozessen erlauben V-Semaphoren eine Option von SEM_UNDO, die verhindert, dass ein Semaphor "hängenbleibt", wenn ein Prozess mit dem Semaphor abstürzt. Was ist die korrekte Methode, um zu verhindern, dass POSIX-Semaphoren durch einen Absturz in einem Prozess, der den Semaphor hält, blockiert werden? Oder garantiert POSIX , dass der Semaphor im Falle eines Absturzes freigegeben wird?Äquivalent von Sys V SEM_UNDO für Posix-Semaphoren
6
A
Antwort
-1
Sie können den Signalhandler für SIGSEGV verwenden und anschließend den Signalhandler entsperren und entfernen.
// set handler
signal(SIGSEGV, handler);
void handler(int signum) {
// unlock the locked semaphores
signal(SIGSEGV, SIG_DFL);
}
Verwandte Themen
- 1. sys sehen Äquivalent INFORMATION_SCHEMA Abfrage
- 2. Ruby-Äquivalent -v
- 3. teilen Speicher zwischen Kernel und Benutzerraum mit sys v
- 4. Gibt es ein App-V/Docker-Äquivalent für Mac OSX?
- 5. Äquivalent von + = für Präfix
- 6. Berechnet/Dynamisch V-Modell Name innerhalb von V-für
- 7. Berechnen "v^TA v" für eine Matrix von Vektoren
- 8. sys v shared memory von kernel module zu user space process
- 9. Zugang verweigert für Benutzer debian-sys-maint
- 10. Semantisches Äquivalent von async für
- 11. Äquivalent von Vlookup für Stata
- 12. Äquivalent von gettimeday() für Windows
- 13. Äquivalent von open_memstream für MSVC
- 14. Äquivalent Zeit für die Speicherüberprüfung
- 15. Sys undefiniert für HTTPS-URL in IE8
- 16. Verschachtelte Arrays von Objekten und v-für
- 17. SDK-Äquivalent für Html.Action
- 18. Windows <sys/file.h> entspricht
- 19. Swift-Äquivalent von @encode
- 20. Wie eine vorhandene Java-Anwendung auf einen SYS V-Dienst (Daemon)
- 21. Python-Äquivalent von PropertyUtilsBean
- 22. Oracle 11g Sys Abfrage
- 23. Hoptoad v. Außergewöhnlich v. Exception_notification v. Exception_logger
- 24. Was überprüft 'v! == v'?
- 25. Pygame-Äquivalent für Ruby?
- 26. OSX-Äquivalent für IP_RECVERR
- 27. Javascript-Äquivalent für scanf()
- 28. Vue.js v-falls für Attribute
- 29. Python-Äquivalent von Rubys each_with_index?
- 30. Matplotlibkoord. sys Herkunft nach oben links
Ist das beantwortet von http://stackoverflow.com/questions/2053679/how-do-i-recover-a-semaphore-when-the-process-that-decremented-it-to-zero- crashe –
Ja und nein. Ich hatte auf eine autoritative Quelle für POSIX-Semaphore gehofft, die die Dinge infolge eines Absturzes in einem unbestimmten Zustand beließ. Diese Verbindung bietet sicherlich eine Möglichkeit, mit einer solchen Situation umzugehen, ohne jedoch das Warum/Wie zu erklären, was aus der POSIX-Spezifikation ein Versehen zu sein scheint. Ich habe am Ende nur SYS-V-Semaphore verwendet, aber ich bin gespannt, warum POSIX das scheinbar einzig sinnvolle Verhalten eines Mutex bei einem Absturz nicht festlegt. – Joe
Nun: http://charette.no-ip.com:81/programming/2010-01-13_PosixSemaphores/ - auch mit der Dateisperrlösung. –