您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何断言std :: mutex是否已锁定?

如何断言std :: mutex是否已锁定?

std::unique_lock<L>具有owns_lock成员函数(相当于is_locked您所说的)。

std::mutex gmtx;
std::unique_lock<std::mutex> glock(gmtx, std::defer_lock);

void alpha(void) {
   std::lock_guard<decltype(glock)> g(glock);
   beta(void);
   // some other work
}
void beta(void) {
   assert(glock.owns_lock()); // or just assert(glock);
   // some real work
}

在此解决方案中,所有锁定操作应通过unique_lockglock而不是“原始”互斥锁执行gmtx。例如,alphalock_guard<unique_lock<mutex>>(或简单地lock_guard<decltype(glock)>)重写成员函数

其他 2022/1/1 18:22:10 有562人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶