Will killed process/thread release mutex?

坚强是说给别人听的谎言 提交于 2019-12-21 03:55:15

问题


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.


回答1:


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.



来源:https://stackoverflow.com/questions/26104921/will-killed-process-thread-release-mutex

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!