1 Star 0 Fork 0

cc/GB28181_RTMP

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
281_Mutex.h 837 Bytes
一键复制 编辑 原始数据 按行查看 历史
李瑀辰 提交于 2019-11-12 15:39 . 添加项目文件。
// leveldb Mutex CondVar
#pragma once
#include <mutex>
#include <condition_variable>
#include <cassert>
class Mutex {
public:
Mutex() = default;
~Mutex() = default;
Mutex(const Mutex&) = delete;
Mutex& operator=(const Mutex&) = delete;
void Lock() { mu_.lock(); }
void Unlock() { mu_.unlock(); }
void AssertHeld() { }
private:
friend class CondVar;
std::mutex mu_;
};
class CondVar {
public:
explicit CondVar(Mutex* mu) : mu_(mu) { assert(mu != nullptr); }
~CondVar() = default;
CondVar(const CondVar&) = delete;
CondVar& operator=(const CondVar&) = delete;
void Wait() {
std::unique_lock<std::mutex> lock(mu_->mu_, std::adopt_lock);
cv_.wait(lock);
lock.release();
}
void Signal() { cv_.notify_one(); }
void SignalAll() { cv_.notify_all(); }
private:
std::condition_variable cv_;
Mutex* const mu_;
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/qq43559990/GB28181_RTMP.git
git@gitee.com:qq43559990/GB28181_RTMP.git
qq43559990
GB28181_RTMP
GB28181_RTMP
master

搜索帮助