W systemie Linux z wieloma procesami system semaforów V pozwala na opcję SEM_UNDO zapobiegającą "utknięciu" semafora, jeśli proces zatrzymujący semafor się zawiesi. Jaka jest właściwa metoda zapobiegania zakleszczeniu się semaforów POSIX w wyniku awarii w procesie trzymającym semafor? Czy też POSIX gwarantuje, że semafor zostanie zwolniony w przypadku awarii?Równoważnik Sys V SEM_UNDO dla semaforów posix
6
A
Odpowiedz
-1
Możesz użyć programu obsługi sygnału dla SIGSEGV, a następnie odblokować i usunąć obsługę sygnału.
// set handler
signal(SIGSEGV, handler);
void handler(int signum) {
// unlock the locked semaphores
signal(SIGSEGV, SIG_DFL);
}
Powiązane problemy
- 1. C, jak używać semaforów POSIX na rozwidlonych procesach?
- 2. Notacja semaforów - dlaczego V i P zamiast S i W
- 3. Nagłówki dla funkcji C POSIX
- 4. Równoważnik Java dla .charCodeAt()
- 5. Równoważnik Mylyn dla Netbeans?
- 6. Równoważnik gettimeday() dla Windows
- 7. Oblicz „v^TA V” dla macierzy wektorów v
- 8. Gwarancja kolejności semaforów?
- 9. Równoważnik rozmiaru C dla makr
- 10. Równoważnik get_or_create dla dodawania użytkowników
- 11. Kotlin: Równoważnik getClass() dla KClass
- 12. odmowa dostępu dla użytkownika debian-sys-maint
- 13. Ustawienie rzetelności w klasie semaforów
- 14. "Wiążesz v-model bezpośrednio z aliasem v-dla iteracji"
- 15. Hoptoad v. Wyjątkowy v. Exception_notification v. Exception_logger
- 16. Pandas SQL równoważnik dla "nie równy" klauzula
- 17. Równoważnik usleep() w jądrze CUDA?
- 18. Oracle 11g Sys Query
- 19. Semop: Kiedy maleje zestaw semaforów jest od razu zmniejszany lub blokuje przy pierwszej awarii?
- 20. POSIX sh Gramatyka EBNF
- 21. Równoległe procesy używające semaforów w C
- 22. Wykrywanie urządzeń pamięci SSD w systemach POSIX
- 23. Zmiana rozmiaru pamięci współużytkowanej POSIX. Działający przykład:
- 24. Jak zaimplementować komunikację wątków semaforów w Perlu?
- 25. Równoważnik setdefault w Go?
- 26. Równoważnik WPF właściwości AccesibleName
- 27. Zachowanie sygnału POSIX
- 28. jak zainstalować POSIX php
- 29. JobConf v/s Konfiguracja dla Hadoop 1.0.4
- 30. Domyślne typy HashMap dla K i V
Czy to odpowiedział http://stackoverflow.com/questions/2053679/how-do-i-recover-a-semaphore-when-the-process-that-decremented-it-to-zero- crashe –
Tak i nie. Miałem nadzieję na pewne wiarygodne źródło semaforów POSIX, pozostawiając rzeczy w nieokreślonym stanie w wyniku awarii. To łącze z pewnością oferuje sposób radzenia sobie z taką sytuacją, ale bez wyjaśnienia, dlaczego/jak wygląda nadzór ze specyfikacji POSIX. Właśnie użyłem semaforów SYS V na końcu, ale jestem ciekawy, dlaczego POSIX nie nakazuje czegoś, co wydaje się jedynym sensownym zachowaniem muteksa podczas awarii. – Joe
Cóż: http://charette.no-ip.com:81/programming/2010-01-13_PosixSemaphores/ - również przy użyciu rozwiązania blokowania plików. –