XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
xwos::lock::Mtx::Grd类 参考

互斥锁的RAII机制守卫 更多...

#include <Mtx.hxx>

xwos::lock::Mtx::Grd 的协作图:

Public 成员函数

 Grd ()=delete
 
 Grd (Mtx *mtx, enum LockMode mode=LockMode::MtxLock, xwtm_t to=((xwtm_t)((~(xwu64_t) 0) > > 1)))
 构造互斥锁的RAII机制守卫并上锁互斥锁
 
 Grd (Mtx &mtx, enum LockMode mode=LockMode::MtxLock, xwtm_t to=((xwtm_t)((~(xwu64_t) 0) > > 1)))
 构造互斥锁的RAII机制守卫并上锁互斥锁
 
 ~Grd ()
 析构互斥锁的RAII机制守卫并解锁互斥锁
 
void unlock ()
 解锁互斥锁
 
xwer_t getRc ()
 获取上锁结果错误码
 
enum LockMode getLockMode ()
 获取上锁模式
 
xwer_t wait (sync::Cond *cond)
 等待条件量
 
xwer_t wait (sync::Cond &cond)
 
xwer_t wait (sync::Cond *cond, xwtm_t to)
 限时等待条件量
 
xwer_t wait (sync::Cond &cond, xwtm_t to)
 

Private 属性

MtxmMtx
 
xwer_t mRc
 
enum LockMode mLockMode
 

详细描述

互斥锁的RAII机制守卫

在文件 Mtx.hxx106 行定义.

构造及析构函数说明

◆ Grd() [1/3]

xwos::lock::Mtx::Grd::Grd ( )
delete

◆ Grd() [2/3]

xwos::lock::Mtx::Grd::Grd ( Mtx mtx,
enum LockMode  mode = LockMode::MtxLock,
xwtm_t  to = ((xwtm_t)((~(xwu64_t) 0) > > 1)) 
)

构造互斥锁的RAII机制守卫并上锁互斥锁

参数
[in]mtx互斥锁对象指针
[in]mode锁模式,取值 Mtx::LockMode
[in]to期望唤醒的时间点, 仅当 mode == Mtx::LockMode::MtxLockTimed 时有效。
注解
  • 上下文:线程

◆ Grd() [3/3]

xwos::lock::Mtx::Grd::Grd ( Mtx mtx,
enum LockMode  mode = LockMode::MtxLock,
xwtm_t  to = ((xwtm_t)((~(xwu64_t) 0) > > 1)) 
)

构造互斥锁的RAII机制守卫并上锁互斥锁

参数
[in]mode锁模式,取值 Mtx::LockMode
[in]to期望唤醒的时间点, 仅当 mode == Mtx::LockMode::MtxLockTimed 时有效。

◆ ~Grd()

xwos::lock::Mtx::Grd::~Grd ( )

析构互斥锁的RAII机制守卫并解锁互斥锁

成员函数说明

◆ unlock()

void xwos::lock::Mtx::Grd::unlock ( )

解锁互斥锁

  • 主动解锁后,析构函数将不再解锁。

◆ getRc()

xwer_t xwos::lock::Mtx::Grd::getRc ( )
inline

获取上锁结果错误码

返回
错误码
返回值
XWOK没有错误
-EFAULT无效的指针或空指针
-EOBJDEAD互斥锁对象无效
-EINTR等待被中断
-ETIMEDOUT超时
-ENOTTHDCTX不在线程上下文中
-EDSPMPT抢占被关闭
-EDSBH中断底半部被关闭

在文件 Mtx.hxx190 行定义.

190{ return mRc; }

◆ getLockMode()

enum LockMode xwos::lock::Mtx::Grd::getLockMode ( )
inline

获取上锁模式

在文件 Mtx.hxx195 行定义.

195{ return mLockMode; }
enum LockMode mLockMode
Definition Mtx.hxx:111

◆ wait() [1/4]

xwer_t xwos::lock::Mtx::Grd::wait ( sync::Cond cond)

等待条件量

参数
[in]cond条件量对象的指针
返回
错误码
返回值
XWOK没有错误
-EFAULT无效的指针或空指针
-EINVAL参数无效
-ENOTTHDCTX不在线程上下文中
-ENOLCK未上锁
-EINTR等待被中断
注解
  • 上下文:线程

◆ wait() [2/4]

xwer_t xwos::lock::Mtx::Grd::wait ( sync::Cond cond)
inline

这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

在文件 Mtx.hxx227 行定义.

227{ return wait(&cond); }
xwer_t wait(sync::Cond *cond)
等待条件量
函数调用图:
这是这个函数的调用关系图:

◆ wait() [3/4]

xwer_t xwos::lock::Mtx::Grd::wait ( sync::Cond cond,
xwtm_t  to 
)

限时等待条件量

参数
[in]cond条件量对象的指针
[in]to期望唤醒的时间点
返回
错误码
返回值
XWOK没有错误
-EFAULT无效的指针或空指针
-EINVAL参数无效
-ENOTTHDCTX不在线程上下文中
-ENOLCK未上锁
-EINTR等待被中断
-ETIMEDOUT超时
注解
  • 上下文:线程

◆ wait() [4/4]

xwer_t xwos::lock::Mtx::Grd::wait ( sync::Cond cond,
xwtm_t  to 
)
inline

这是为便于使用而提供的一个重载成员函数.与上面的函数相比,它接受不同类型的参数.

在文件 Mtx.hxx266 行定义.

266{ return wait(&cond, to); }
函数调用图:
这是这个函数的调用关系图:

结构体成员变量说明

◆ mMtx

Mtx* xwos::lock::Mtx::Grd::mMtx
private

在文件 Mtx.hxx109 行定义.

◆ mRc

xwer_t xwos::lock::Mtx::Grd::mRc
private

内部上锁CAPI的返回值

在文件 Mtx.hxx110 行定义.

◆ mLockMode

enum LockMode xwos::lock::Mtx::Grd::mLockMode
private

在文件 Mtx.hxx111 行定义.


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