On linux, how to make sure to unlock a mutex which was locked in a thread that dies/terminates?

后端 未结 2 2136
孤街浪徒
孤街浪徒 2021-01-03 05:15

This is an interview question.

On linux, how to make sure to unlock a POSIX mutex which was locked in a POSIX thread that dies/terminates?

My idea:

2条回答
  •  庸人自扰
    2021-01-03 05:53

    If it's not a process-shared mutex, it doesn't matter. When one thread dies, the process dies, and the mutex goes away.

    If it's a process-shared mutex, you're asking the wrong question. You wouldn't want to unlock the mutex if a thread died while holding it. The reason a thread holds a mutex is so that it can manipulate shared data through states that must not be seen by other threads. If a thread dies while holding a mutex, it is likely that the data was left in such an inconsistent state. Unlocking the mutex would just allow other threads to see the invalid/corrupt data.

提交回复
热议问题