acl
3.5.3.0
|
#include "acl_define.h"
宏定义 | |
#define | ACL_MBOX_T_SPSC 0 /* 单生产者单消费者 */ |
#define | ACL_MBOX_T_MPSC 1 /* 多生产者单消费者 */ |
类型定义 | |
typedef struct ACL_MBOX | ACL_MBOX |
函数 | |
ACL_API ACL_MBOX * | acl_mbox_create (void) |
ACL_API ACL_MBOX * | acl_mbox_create2 (unsigned type) |
ACL_API void | acl_mbox_free (ACL_MBOX *mbox, void(*free_fn)(void *)) |
ACL_API int | acl_mbox_send (ACL_MBOX *mbox, void *msg) |
ACL_API void * | acl_mbox_read (ACL_MBOX *mbox, int timeout, int *success) |
ACL_API size_t | acl_mbox_nsend (ACL_MBOX *mbox) |
ACL_API size_t | acl_mbox_nread (ACL_MBOX *mbox) |
#define ACL_MBOX_T_MPSC 1 /* 多生产者单消费者 */ |
在文件 acl_mbox.h 第 19 行定义.
#define ACL_MBOX_T_SPSC 0 /* 单生产者单消费者 */ |
在文件 acl_mbox.h 第 18 行定义.
在文件 acl_mbox.h 第 10 行定义.
ACL_API ACL_MBOX* acl_mbox_create | ( | void | ) |
创建无锁消息队列对象
ACL_API ACL_MBOX* acl_mbox_create2 | ( | unsigned | type | ) |
ACL_API void acl_mbox_free | ( | ACL_MBOX * | mbox, |
void(*)(void *) | free_fn | ||
) |
释放无锁消息队列对象
mbox | {ACL_MBOX*} 消息队列对象 |
free_fn | {void (*)(void*)} 非空时用来释放当前存在于消息队列中的对象 |
ACL_API size_t acl_mbox_nread | ( | ACL_MBOX * | mbox | ) |
获得当前消息队列已经成功接收到的消息数
mbox | {ACL_MBOX*} 消息队列对象 |
ACL_API size_t acl_mbox_nsend | ( | ACL_MBOX * | mbox | ) |
获得当前消息队列已经成功发送的消息数
mbox | {ACL_MBOX*} 消息队列对象 |
ACL_API void* acl_mbox_read | ( | ACL_MBOX * | mbox, |
int | timeout, | ||
int * | success | ||
) |
从消息队列中读取消息
mbox | {ACL_MBOX*} 消息队列对象 |
timeout | {int} 等待超时时间(毫秒级别),如果 < 0 则一直等待直到有数据 |
success | {int*} 存储操作是否成功的结果, 0 表示出错,非 0 表示成功 |
ACL_API int acl_mbox_send | ( | ACL_MBOX * | mbox, |
void * | msg | ||
) |
向消息队列中添加动态消息对象
mbox | {ACL_MBOX*} 消息队列对象 |
msg | {void*} |