Sese Framework  x.y.z
A cross-platform framework
载入中...
搜索中...
未找到
sese::system::Semaphore类 参考final

命名信号量 更多...

#include <Semaphore.h>

Public 类型

using Ptr = std::unique_ptr<Semaphore>
 

Public 成员函数

 ~Semaphore ()
 
bool lock ()
 阻塞并等待至获取到资源
 
bool unlock ()
 释放当前资源
 
bool tryLock (std::chrono::milliseconds ms)
 

静态 Public 成员函数

static Semaphore::Ptr create (std::string name, uint32_t initial_count=1)
 

Private 成员函数

 Semaphore ()=default
 

Private 属性

std::string sem_name {}
 
sem_t * semaphore {}
 

详细描述

命名信号量

成员类型定义说明

◆ Ptr

using sese::system::Semaphore::Ptr = std::unique_ptr<Semaphore>

构造及析构函数说明

◆ ~Semaphore()

Semaphore::~Semaphore ( )

引用了 sem_name , 以及 semaphore.

◆ Semaphore()

sese::system::Semaphore::Semaphore ( )
privatedefault

成员函数说明

◆ create()

Semaphore::Ptr Semaphore::create ( std::string name,
uint32_t initial_count = 1 )
static

创建一个命名信号量

参数
name名称
initial_count初始计数,默认为 1 行为与互斥量一致
返回值
nullptr创建失败

引用了 MAKE_UNIQUE_PRIVATE.

被这些函数引用 sese::system::IPCChannel::create() , 以及 sese::system::IPCChannel::use().

◆ lock()

bool Semaphore::lock ( )

阻塞并等待至获取到资源

引用了 semaphore.

◆ tryLock()

bool Semaphore::tryLock ( std::chrono::milliseconds ms)

在一定时间内尝试获取资源

参数
ms单位为毫秒的等待时间,处于 APPLE 平台下时此参数无效
返回
是否获取成功

引用了 semaphore.

◆ unlock()

bool Semaphore::unlock ( )

释放当前资源

引用了 semaphore.

类成员变量说明

◆ sem_name

std::string sese::system::Semaphore::sem_name {}
private

被这些函数引用 ~Semaphore().

◆ semaphore

sem_t* sese::system::Semaphore::semaphore {}
private

被这些函数引用 lock(), tryLock(), unlock() , 以及 ~Semaphore().


该类的文档由以下文件生成: