📄 queue.h
字号:
/********************************************** * Dawn Light Player * * queue.h * * Created by kf701 * Mon Feb 25 17:05:41 CST 2008 * * $Id: queue.h 168 2008-03-21 02:50:01Z kf701 $ **********************************************/#ifndef _DLP_QUEUE_H_#define _DLP_QUEUE_H_#include "my_pthread.h"#ifndef MAX#define MAX(a,b) ((a)>(b)?(a):(b))#define MIN(a,b) ((a)>(b)?(b):(a))#endif#ifndef CLAMP#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))#endif#define POINTER_TO_UINT(p) ((unsigned int)(p))#if defined (__GNUC__)#define likely(x) __builtin_expect(!!(x), 1)#define unlikely(x) __builtin_expect(!!(x), 0)#else#define likely(x) (x)#define unlikely(x) (x)#endiftypedef struct _node_{ void *data; int size; struct _node_ *next; struct _node_ *prev;} _node_t;typedef struct{ _node_t *head; _node_t *tail; uint32_t length; pthread_mutex_t mutex; pthread_cond_t cond;} queue_t;queue_t *dlp_queue_new(void);typedef void (*free_func) (void*) ;void dlp_queue_free(queue_t *qu, free_func func);void dlp_queue_flush(queue_t *qu, free_func func);int dlp_wait_on_queue(queue_t *qu);int dlp_wait_on_queue_timeout(queue_t *qu, int timeout);uint32_t dlp_queue_length(queue_t *qu);void dlp_queue_push_head(queue_t *qu, void *data);void dlp_queue_push_tail(queue_t *qu, void *data);void dlp_queue_push_nth(queue_t *qu, void *data, uint32_t n);void *dlp_queue_pop_head(queue_t *qu);void *dlp_queue_pop_tail(queue_t *qu);void *dlp_queue_pop_nth(queue_t *qu, uint32_t n);void *dlp_queue_peek_head(queue_t *qu);void *dlp_queue_peek_tail(queue_t *qu);void *dlp_queue_peek_nth(queue_t *qu, uint32_t n);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -