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 .
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.