2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#ifndef c89atomic_deque_h
22#define c89atomic_deque_h
24#include "../c89atomic.h"
26#ifndef C89ATOMIC_DEQUE_API
27#define C89ATOMIC_DEQUE_API
32 C89ATOMIC_DEQUE_SUCCESS = 0,
33 C89ATOMIC_DEQUE_OUT_OF_MEMORY,
34 C89ATOMIC_DEQUE_NO_DATA_AVAILABLE,
35 C89ATOMIC_DEQUE_CANCELLED
36} c89atomic_deque_result;
39#ifndef C89ATOMIC_DEQUE_CAP
40#define C89ATOMIC_DEQUE_CAP 256
43#ifndef C89ATOMIC_DEQUE_T
44#define C89ATOMIC_DEQUE_T void*
50 c89atomic_uint32 head;
51 c89atomic_uint32 tail;
#define c89atomic_memory_order_release
#define c89atomic_memory_order_seq_cst
#define c89atomic_memory_order_acquire
#define c89atomic_memory_order_relaxed
#define C89ATOMIC_DEQUE_T
#define C89ATOMIC_DEQUE_CAP
#define C89ATOMIC_DEQUE_API