33 const char*
name{
"unnamed_mutex"};
73 explicit
Mutex(const
char* _name)
90 std::atomic<Pid>
owner_{std::numeric_limits<Pid>::max()};
Mutex(const Mutex &)=delete
std::atomic< Pid > owner_
持有锁的任务 ID,max() 表示未被持有
ResourceId resource_id_
资源 ID,用于任务阻塞队列
auto operator=(const Mutex &) -> Mutex &=delete
auto Lock() -> Expected< void >
获取锁(阻塞)
auto IsLockedByCurrentTask() const -> bool
检查锁是否被当前线程持有
auto operator=(Mutex &&) -> Mutex &=delete
auto UnLock() -> Expected< void >
释放锁
std::atomic< bool > locked_
锁状态
auto TryLock() -> Expected< void >
尝试获取锁(非阻塞)
std::expected< T, Error > Expected
std::expected 别名模板