Wird der Prozess / Thread-Release-Mutex beendet?

9

Mehrere Prozesse greifen auf gemeinsam genutzten Speicher zu, sperren ihn für die Synchronisation mit dem Mutex und pthread_mutex_lock() , und jeder Prozess kann jederzeit abgebrochen werden (tatsächlich habe ich php-fpm mit APC extension beschrieben, aber das macht nichts ).
Wird der Mutex automatisch entsperrt, wenn der Prozess den Mutex gesperrt hat und dann getötet wurde?
Oder gibt es eine Möglichkeit, es automatisch zu entsperren?

Bearbeiten: Wie sich herausstellt, haben sterbende Prozesse und Threads in dieser Situation ein ähnliches Verhalten, das von robustes Attribut von Mutex .

    
fadimko 29.09.2014, 16:48
quelle

1 Antwort

1

Das hängt vom Typ des Mutex ab. Ein "robuster" Mutex wird den Tod des Threads / Prozesses überleben. Siehe diese Frage: POSIX-Thread beenden / crash / Ausnahme-crash während Halten Mutex

Der nächste Thread, der versucht, ihn zu sperren, erhält einen EOWNERDEAD Fehlercode

Hinweis: Gesammelte Informationen aus den Kommentaren.

    
Aaron Digulla 30.09.2014 14:57
quelle

Tags und Links