【问题标题】:Thread stuck in mutex wait while searching in Boost Interprocess managed_shared_memory在 Boost Interprocess managed_shared_memory 中搜索时,线程陷入互斥等待
【发布时间】:2010-05-26 12:04:08
【问题描述】:

我们正在使用 boost::interprocess::managed_shared_memory。最近在测试时,我们发现在进程崩溃后,在共享内存中搜索的线程卡在了 manage_shared_memory API 中。 我最初的观察是,作为 segment_manager 成员的 m_header 递归锁在进程崩溃并重新启动时处于锁定状态。 为了克服或修复这种情况,我们实际上如何检测这种情况。

注意:boost 库版本为 1_35_0

【问题讨论】:

    标签: boost managed shared-memory interprocess


    【解决方案1】:

    我总是在实例化互斥体之前调用boost::interprocess::named_upgradable_mutex::remove("mutex name");。如果没有其他进程附加到互斥锁,它将被删除,并且保证您拥有一个干净的状态。如果有人附加到互斥锁,那么它只会出错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-20
      • 2019-01-23
      • 2021-12-24
      • 2021-06-09
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多