NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
hazard_pointer_record结构体 参考

险象指针记录 更多...

#include <hazard_ptr.hpp>

Public 成员函数

bool try_acquire ()
 尝试获取记录的所有权
void release ()
 释放记录
void protect (void *ptr)
 保护指定的指针
void * get_protected () const
 获取当前保护的指针

Public 属性

atomic< void * > hazard_ptr {nullptr}
 受保护的指针
atomic< hazard_pointer_record * > next {nullptr}
 链表中的下一个记录
atomic< bool > active {false}
 记录是否活跃

详细描述

险象指针记录

每个线程可以持有一个险象指针记录,用于标记当前正在访问的对象。 记录包含一个原子指针和一个活跃标志。

在文件 hazard_ptr.hpp40 行定义.

成员函数说明

◆ get_protected()

void * hazard_pointer_record::get_protected ( ) const
inline

获取当前保护的指针

返回
受保护的指针

在文件 hazard_ptr.hpp74 行定义.

引用了 hazard_ptr , 以及 memory_order_acquire.

◆ protect()

void hazard_pointer_record::protect ( void * ptr)
inline

保护指定的指针

参数
ptr要保护的指针

在文件 hazard_ptr.hpp68 行定义.

引用了 hazard_ptr , 以及 memory_order_release.

◆ try_acquire()

bool hazard_pointer_record::try_acquire ( )
inline

尝试获取记录的所有权

返回
是否成功获取

在文件 hazard_ptr.hpp51 行定义.

引用了 active, memory_order_acquire , 以及 memory_order_relaxed.

被这些函数引用 hazard_pointer_domain::acquire_record().


该结构体的文档由以下文件生成: