acl  3.5.3.0
acl_atomic.h 文件参考
#include "acl_define.h"
+ acl_atomic.h 的引用(Include)关系图:
+ 此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

类型定义

typedef struct ACL_ATOMIC ACL_ATOMIC
 
typedef struct ACL_ATOMIC_CLOCK ACL_ATOMIC_CLOCK
 

函数

ACL_API ACL_ATOMICacl_atomic_new (void)
 
ACL_API void acl_atomic_free (ACL_ATOMIC *self)
 
ACL_API void acl_atomic_set (ACL_ATOMIC *self, void *value)
 
ACL_API void * acl_atomic_cas (ACL_ATOMIC *self, void *cmp, void *value)
 
ACL_API void * acl_atomic_xchg (ACL_ATOMIC *self, void *value)
 
ACL_API void acl_atomic_int64_set (ACL_ATOMIC *self, long long n)
 
ACL_API long long acl_atomic_int64_fetch_add (ACL_ATOMIC *self, long long n)
 
ACL_API long long acl_atomic_int64_add_fetch (ACL_ATOMIC *self, long long n)
 
ACL_API long long acl_atomic_int64_cas (ACL_ATOMIC *self, long long cmp, long long n)
 
ACL_API ACL_ATOMIC_CLOCKacl_atomic_clock_alloc (void)
 
ACL_API void acl_atomic_clock_free (ACL_ATOMIC_CLOCK *clk)
 
ACL_API long long acl_atomic_clock_count_add (ACL_ATOMIC_CLOCK *clk, int n)
 
ACL_API long long acl_atomic_clock_users_add (ACL_ATOMIC_CLOCK *clk, int n)
 
ACL_API void acl_atomic_clock_users_count_inc (ACL_ATOMIC_CLOCK *clk)
 
ACL_API long long acl_atomic_clock_count (ACL_ATOMIC_CLOCK *clk)
 
ACL_API long long acl_atomic_clock_atime (ACL_ATOMIC_CLOCK *clk)
 
ACL_API long long acl_atomic_clock_users (ACL_ATOMIC_CLOCK *clk)
 

类型定义说明

◆ ACL_ATOMIC

typedef struct ACL_ATOMIC ACL_ATOMIC

在文件 acl_atomic.h11 行定义.

◆ ACL_ATOMIC_CLOCK

在文件 acl_atomic.h86 行定义.

函数说明

◆ acl_atomic_cas()

ACL_API void* acl_atomic_cas ( ACL_ATOMIC self,
void *  cmp,
void *  value 
)

比较并交换对象,当原子对象绑定的对象与给定比较对象相同时才设置新对象且 返回之前绑定的对象

参数
self{ACL_ATOMIC*} 原子对象
cmp{void*} 待比较对象指针
value{void*} 当原子对象与待比较对象相同时会将该对象与原子对象绑定
返回
{void*} 返回原子对象之前绑定的对象

◆ acl_atomic_clock_alloc()

ACL_API ACL_ATOMIC_CLOCK* acl_atomic_clock_alloc ( void  )

◆ acl_atomic_clock_atime()

ACL_API long long acl_atomic_clock_atime ( ACL_ATOMIC_CLOCK clk)

◆ acl_atomic_clock_count()

ACL_API long long acl_atomic_clock_count ( ACL_ATOMIC_CLOCK clk)

◆ acl_atomic_clock_count_add()

ACL_API long long acl_atomic_clock_count_add ( ACL_ATOMIC_CLOCK clk,
int  n 
)

◆ acl_atomic_clock_free()

ACL_API void acl_atomic_clock_free ( ACL_ATOMIC_CLOCK clk)

◆ acl_atomic_clock_users()

ACL_API long long acl_atomic_clock_users ( ACL_ATOMIC_CLOCK clk)

◆ acl_atomic_clock_users_add()

ACL_API long long acl_atomic_clock_users_add ( ACL_ATOMIC_CLOCK clk,
int  n 
)

◆ acl_atomic_clock_users_count_inc()

ACL_API void acl_atomic_clock_users_count_inc ( ACL_ATOMIC_CLOCK clk)

◆ acl_atomic_free()

ACL_API void acl_atomic_free ( ACL_ATOMIC self)

释放原子对象

参数
self{ACL_ATOMIC*} 原子对象

◆ acl_atomic_int64_add_fetch()

ACL_API long long acl_atomic_int64_add_fetch ( ACL_ATOMIC self,
long long  n 
)

对数据对象存储的值增加指定的值,并返回结果值

参数
self{ACL_ATOMIC*} 原子对象
n{long long} 增加值
返回
{long long} 返回增加之后的值

◆ acl_atomic_int64_cas()

ACL_API long long acl_atomic_int64_cas ( ACL_ATOMIC self,
long long  cmp,
long long  n 
)

比较并交换整数值,当原子对象存储的整数值与给定比较整数值相同时才设置新整数 值且返回之前存储的整数值

参数
self{ACL_ATOMIC*} 原子对象
cmp{long long} 待比较整数值
n{long long} 当原子对象与待比较整数值相同时会将原子对象设置为此值
返回
{long long} 返回原子对象之前存储的整数值

◆ acl_atomic_int64_fetch_add()

ACL_API long long acl_atomic_int64_fetch_add ( ACL_ATOMIC self,
long long  n 
)

先获得数值对象所存储的整数值,然后再增加指定的值存储于该数值对象中

参数
self{ACL_ATOMIC*} 原子对象
n{long long} 增加值
返回
{long long} 返回增加之前数据数值对象的值

◆ acl_atomic_int64_set()

ACL_API void acl_atomic_int64_set ( ACL_ATOMIC self,
long long  n 
)

当调用 acl_atomic_set 绑定的对象为数值对象时,可以调用此函数设置被绑定对象 的长整数值

参数
self{ACL_ATOMIC*} 原子对象
n{long long} 被原子对象所绑定的对象将被赋值为此值

◆ acl_atomic_new()

ACL_API ACL_ATOMIC* acl_atomic_new ( void  )

创建原子对象

返回
{ACL_ATOMIC*} 返回新创建的对象

◆ acl_atomic_set()

ACL_API void acl_atomic_set ( ACL_ATOMIC self,
void *  value 
)

将指定对象与原子对象绑定,以便于对该对象进行原子操作

参数
self{ACL_ATOMIC*} 原子对象
value{void*} 被操作的对象,通过原子对象实现对该对象的原子操作

◆ acl_atomic_xchg()

ACL_API void* acl_atomic_xchg ( ACL_ATOMIC self,
void *  value 
)

将原子对象与新对象进行绑定,并返回之前绑定的对象

参数
self{ACL_ATOMIC*} 原子对象
value{void*} 将被绑定的新对象
返回
{void*} 返回之前绑定的对象