pthread_mutex_t 在多个进程中...谁破坏了它?

pthread_mutex_t in multiple processes...who destroys it?

我正在使用 pthread_mutex_t 在同一级别的多个进程之间同步对资源的访问(即没有 parent/child 关系)。

我如何确定何时可以安全地拨打 pthread_mutex_destroy?我能想到的在不引入竞争条件的情况下确定互斥锁是否被另一个进程使用的唯一方法是引入另一个互斥锁。

不在我的脑海里 -

  1. 使用信号量(或共享内存计数器)
  2. 决定leader(第一个创建mutex的进程)是 会破坏它的那个,并且直到 其余的都关闭了。
  3. 在外部创建互斥量,并删除它 外部 - 进程认为这是理所当然的(甚至可能永远不会删除 它;取决于系统)

等...