XWOS API
4.0
XWOS C/C++ API参考手册
|
部分中断上锁模式的自旋锁RAII机制守卫 更多...
#include <Spinlock.hxx>
Public 成员函数 | |
LkIrqsGrd (Spinlock *spinlock) | |
构造自旋锁的RAII机制守卫 | |
LkIrqsGrd (Spinlock &spinlock) | |
构造自旋锁的RAII机制守卫 | |
~LkIrqsGrd () | |
析构自旋锁的RAII机制守卫 | |
enum LockStatus | getStatus () |
获取锁状态 | |
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) |
限时等待条件量 | |
Protected 成员函数 | |
LkIrqsGrd () | |
Protected 属性 | |
Spinlock * | mSpinlock |
enum LockStatus | mStatus |
xwirq_t | mIrqs [sizeof...(TIrqList)] |
xwreg_t | mIrqFlags [sizeof...(TIrqList)] |
部分中断上锁模式的自旋锁RAII机制守卫
TIrqList
列表内的中断,关闭当前CPU调度器的抢占, 上锁自旋锁。TIrqList
列表内的中断。 TIrqList
列表中的中断 在文件 Spinlock.hxx 第 742 行定义.
xwos::lock::Spinlock::LkIrqsGrd< TIrqList >::LkIrqsGrd | ( | Spinlock * | spinlock | ) |
构造自旋锁的RAII机制守卫
[in] | spinlock | 自旋锁对象指针 |
在文件 Spinlock.cxx 第 341 行定义.
xwos::lock::Spinlock::LkIrqsGrd< TIrqList >::LkIrqsGrd | ( | Spinlock & | spinlock | ) |
构造自旋锁的RAII机制守卫
[in] | spinlock | 自旋锁对象引用 |
在文件 Spinlock.cxx 第 353 行定义.
xwos::lock::Spinlock::LkIrqsGrd< TIrqList >::~LkIrqsGrd | ( | ) |
析构自旋锁的RAII机制守卫
在文件 Spinlock.cxx 第 365 行定义.
|
inlineprotected |
在文件 Spinlock.hxx 第 846 行定义.
|
inline |
|
inline |
|
inline |
限时等待条件量
[in] | cond | 条件量对象的引用 |
[in] | to | 期望唤醒的时间点 |
在文件 Spinlock.hxx 第 843 行定义.
xwer_t xwos::lock::Spinlock::LkIrqsGrd< TIrqList >::wait | ( | sync::Cond * | cond | ) |
等待条件量
[in] | cond | 条件量对象的指针 |
XWOK | 没有错误 |
-EFAULT | 无效的指针或空指针 |
-EINVAL | 参数无效 |
-EINTR | 等待被中断 |
-ENOTTHDCTX | 不在线程上下文中 |
sync::Cond::unicast()
或广播 sync::Cond::broadcast()
时,会唤醒正在等待的线程。XWOK
。-EINTR
。XWOK
的错误码后,应该 使用 getStatus()
确认是否上锁成功。 在文件 Spinlock.cxx 第 377 行定义.
xwer_t xwos::lock::Spinlock::LkIrqsGrd< TIrqList >::wait | ( | sync::Cond * | cond, |
xwtm_t | to | ||
) |
限时等待条件量
[in] | cond | 条件量对象的指针 |
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 无效的指针或空指针 |
-EINVAL | 参数无效 |
-ETIMEDOUT | 超时 |
-EINTR | 等待被中断 |
-ENOTTHDCTX | 不在线程上下文中 |
sync::Cond::unicast()
或广播 sync::Cond::broadcast()
时,会唤醒正在等待的线程。XWOK
。-EINTR
。-ETIMEDOUT
。XWOK
的错误码,应该 使用 getStatus()
确认是否上锁成功。 在文件 Spinlock.cxx 第 401 行定义.
|
protected |
在文件 Spinlock.hxx 第 748 行定义.
|
protected |
在文件 Spinlock.hxx 第 747 行定义.
|
protected |
在文件 Spinlock.hxx 第 745 行定义.
|
protected |
在文件 Spinlock.hxx 第 746 行定义.