Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Will killed process/thread release mutex?

Several processes access shared memory, locking it with the mutex and pthread_mutex_lock() for synchronization, and each process can be killed at any moment (in fact I described php-fpm with APC extension, but it doesn't matter).
Will the mutex be unlocked automatically, if the process locked the mutex and then was killed?
Or is there a way to unlock it automatically?

Edit: As it turns out, dying processes and threads have similar behavior in this situation, which depends on robust attribute of mutex.

like image 747
fadimko Avatar asked Sep 29 '14 16:09

fadimko


1 Answers

That depends on the type of mutex. A "robust" mutex will survive the death of the thread/process. See this question: POSIX thread exit/crash/exception-crash while holding mutex

The next thread that will attempt to lock it will receive a EOWNERDEAD error code

Note: Collected information from the comments.

like image 162
Aaron Digulla Avatar answered Sep 28 '22 01:09

Aaron Digulla