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

顺序锁 更多...

#include <Seqlock.hxx>

xwos::lock::Seqlock 的协作图:

结构体

class  RdexLkBhGrd
 独占读中断底半部上锁模式下的顺序锁RAII机制守卫 更多...
 
class  RdexLkGrd
 独占读普通上锁模式下的顺序锁RAII机制守卫 更多...
 
class  RdexLkIrqsGrd
 独占读部分中断上锁模式的顺序锁RAII机制守卫 更多...
 
class  RdexLkThGrd
 独占读CPU中断上锁模式下的顺序锁RAII机制守卫 更多...
 
class  TryRdexLkBhGrd
 独占读中断底半部尝试上锁模式下的顺序锁RAII机制守卫 更多...
 
class  TryRdexLkGrd
 独占读普通尝试上锁模式下的顺序锁RAII机制守卫 更多...
 
class  TryRdexLkIrqsGrd
 独占读部分中断尝试上锁模式下的顺序锁RAII机制守卫 更多...
 
class  TryRdexLkThGrd
 独占读CPU中断尝试上锁模式下的顺序锁RAII机制守卫 更多...
 
class  TryWrLkBhGrd
 独占写中断底半部尝试上锁模式下的顺序锁RAII机制守卫 更多...
 
class  TryWrLkGrd
 独占写普通尝试上锁模式下的顺序锁RAII机制守卫 更多...
 
class  TryWrLkIrqsGrd
 独占写部分中断尝试上锁模式下的顺序锁RAII机制守卫 更多...
 
class  TryWrLkThGrd
 独占写CPU中断尝试上锁模式下的顺序锁RAII机制守卫 更多...
 
class  WrLkBhGrd
 独占写中断底半部上锁模式下的顺序锁RAII机制守卫 更多...
 
class  WrLkGrd
 独占写普通上锁模式下的顺序锁RAII机制守卫 更多...
 
class  WrLkIrqsGrd
 独占写部分中断上锁模式的顺序锁RAII机制守卫 更多...
 
class  WrLkThGrd
 独占写CPU中断上锁模式下的顺序锁RAII机制守卫 更多...
 

Public 类型

enum  LockStatus : xwu32_t { SeqlockUnlocked = 0 , SeqlockRdexLocked , SeqlockWrLocked }
 锁状态 更多...
 

Public 成员函数

 Seqlock ()
 
 ~Seqlock ()
 
struct xwos_sqlkgetXwosObj ()
 
xwsq_t readBegin ()
 开启共享读临界区
 
bool readRetry (xwsq_t start)
 关闭共享读临界区,并检查是否需要重试
 
xwsq_t getSeq ()
 获取顺序锁的顺序值
 

Private 属性

struct xwos_sqlk mLock
 

详细描述

顺序锁

在文件 Seqlock.hxx463 行定义.

成员枚举类型说明

◆ LockStatus

锁状态

枚举值
SeqlockUnlocked 
SeqlockRdexLocked 
SeqlockWrLocked 

在文件 Seqlock.hxx469 行定义.

469 : xwu32_t {
470 SeqlockUnlocked = 0,
473 };
uint32_t xwu32_t
Definition type.h:266

构造及析构函数说明

◆ Seqlock()

xwos::lock::Seqlock::Seqlock ( )

构造函数

在文件 Seqlock.cxx887 行定义.

888{
890}
struct xwos_sqlk mLock
Definition Seqlock.hxx:1753
static void xwos_sqlk_init(struct xwos_sqlk *sql)
XWOS API:初始化顺序锁
Definition seqlock.h:133
函数调用图:

◆ ~Seqlock()

xwos::lock::Seqlock::~Seqlock ( )

析构函数

在文件 Seqlock.cxx892 行定义.

893{
894}

成员函数说明

◆ getSeq()

xwsq_t xwos::lock::Seqlock::getSeq ( )

获取顺序锁的顺序值

注解
  • 上下文:任意

在文件 Seqlock.cxx906 行定义.

907{
908 return xwos_sqlk_get_seq(&mLock);
909}
static xwsq_t xwos_sqlk_get_seq(struct xwos_sqlk *sql)
XWOS API:获取顺序锁的顺序值
Definition seqlock.h:175
函数调用图:

◆ getXwosObj()

struct xwos_sqlk * xwos::lock::Seqlock::getXwosObj ( )
inline

获取XWOS对象指针

在文件 Seqlock.hxx1758 行定义.

◆ readBegin()

xwsq_t xwos::lock::Seqlock::readBegin ( )

开启共享读临界区

返回
当前顺序值
注解
  • 上下文:任意
  • 若顺序锁已处于写临界区,调用的线程会自旋等待。

在文件 Seqlock.cxx896 行定义.

897{
898 return xwos_sqlk_rd_begin(&mLock);
899}
static xwsq_t xwos_sqlk_rd_begin(struct xwos_sqlk *sql)
XWOS API:开启共享读临界区
Definition seqlock.h:148
函数调用图:

◆ readRetry()

bool xwos::lock::Seqlock::readRetry ( xwsq_t  start)

关闭共享读临界区,并检查是否需要重试

参数
[in]startreadBegin() 返回的顺序值,用于测试顺序值是否发生改变
返回值
true顺序值发生了改变,需要重试
false顺序值未发生改变
注解
  • 上下文:任意

在文件 Seqlock.cxx901 行定义.

902{
903 return xwos_sqlk_rd_retry(&mLock, start);
904}
static bool xwos_sqlk_rd_retry(struct xwos_sqlk *sql, xwsq_t start)
XWOS API:关闭共享读临界区,并检查是否需要重试
Definition seqlock.h:163
函数调用图:

结构体成员变量说明

◆ mLock

struct xwos_sqlk xwos::lock::Seqlock::mLock
private

顺序锁结构体

在文件 Seqlock.hxx1753 行定义.


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