1 #ifndef testQueueMAIN_h_
2 #define testQueueMAIN_h_
12 static const int CHNUM = 2;
14 static const int buffer_size = 131072;
15 static const int m_num = 100*buffer_size;
16 static const int push_max = 65536;
17 static const int packet_size = 8198;
18 static const int packet_len = packet_size/2;
25 int try_push(
int chan, T *
data,
int n,
int index);
27 void push(
int chan, T *
data,
int n);
29 int try_pull(
int chan, T *&
data);
32 int pull(
int chan, T *&
data);
34 std::atomic<int64_t> write[CHNUM];
36 std::atomic<int64_t> read[CHNUM];
38 std::atomic<int64_t> numInBuffer[CHNUM];
40 int64_t current_tail[CHNUM];
42 int64_t next_tail[CHNUM];
44 int64_t current_head[CHNUM];
46 int64_t writeNum[CHNUM];
48 int64_t readNum[CHNUM];
50 int64_t writeNumInBuffer[CHNUM];
52 int64_t readNumInBuffer[CHNUM];
54 static const int64_t size = buffer_size;
62 int64_t increment(
int n,
int x){
63 return (n + x) % (size);
65 int64_t memPercent(
int n,
int x){
68 bool startOfRun[CHNUM] = {
true,
true};