📄 que.h
字号:
/* * This piece of code is totally free. If any pitfalls found, * please feel free to contact me at jetmotor@21cn.com * THANKS A LOT! */#ifndef _QUE_H#define _QUE_H#include <pthread.h>#include <semaphore.h>#include "types.h"#include "list.h"#include "wxbuff.h"typedef struct pool_s{ pthread_mutex_t mutex; uint32_t count; struct list_head link;}pool_t;typedef struct softq_s{ pthread_mutex_t mutex; /* mutex for simutaneously deque and enque operations */ uint32_t count; /* number of hanging elements */ uint32_t size; /* total data size of hanging elements */ struct list_head link;}softq_t;typedef struct ringq_s{ sem_t resource; pthread_mutex_t mutex; uint32_t count; struct list_head link;}ringq_t;extern int32_t pool_init(pool_t *p);extern int32_t softq_init(softq_t *sq);extern int32_t softq_enque_tail(softq_t *sq, wxbuff_t *wxb);extern int32_t softq_enque_head(softq_t *sq, wxbuff_t *wxb);extern wxbuff_t * softq_deque(softq_t *sq);extern wxbuff_t * softq_dump(softq_t *sq);extern int32_t ringq_init(ringq_t *rq);extern int32_t ringq_enque(ringq_t *rq, struct list_head *new);extern struct list_head * ringq_deque(ringq_t *rq);extern int32_t ringq_enque_simple(ringq_t *rq, struct list_head *new);extern struct list_head * ringq_dump(ringq_t *rq);#endif /* end of _QUE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -