nxt_nncq.h (1554:8f22edff911d) nxt_nncq.h (2155:f1b4e7b942c4)
1
2/*
3 * Copyright (C) NGINX, Inc.
4 */
5
6#ifndef _NXT_NNCQ_H_INCLUDED_
7#define _NXT_NNCQ_H_INCLUDED_
8

--- 71 unchanged lines hidden (view full) ---

80
81static inline nxt_nncq_atomic_t
82nxt_nncq_empty(nxt_nncq_t const volatile *q)
83{
84 return NXT_NNCQ_SIZE;
85}
86
87
1
2/*
3 * Copyright (C) NGINX, Inc.
4 */
5
6#ifndef _NXT_NNCQ_H_INCLUDED_
7#define _NXT_NNCQ_H_INCLUDED_
8

--- 71 unchanged lines hidden (view full) ---

80
81static inline nxt_nncq_atomic_t
82nxt_nncq_empty(nxt_nncq_t const volatile *q)
83{
84 return NXT_NNCQ_SIZE;
85}
86
87
88static void
88static inline void
89nxt_nncq_init(nxt_nncq_t volatile *q)
90{
91 q->head = NXT_NNCQ_SIZE;
92 nxt_memzero((void *) q->entries, NXT_NNCQ_SIZE * sizeof(nxt_nncq_atomic_t));
93 q->tail = NXT_NNCQ_SIZE;
94}
95
96
89nxt_nncq_init(nxt_nncq_t volatile *q)
90{
91 q->head = NXT_NNCQ_SIZE;
92 nxt_memzero((void *) q->entries, NXT_NNCQ_SIZE * sizeof(nxt_nncq_atomic_t));
93 q->tail = NXT_NNCQ_SIZE;
94}
95
96
97static void
97static inline void
98nxt_nncq_enqueue(nxt_nncq_t volatile *q, nxt_nncq_atomic_t val)
99{
100 nxt_nncq_cycle_t e_cycle, t_cycle;
101 nxt_nncq_atomic_t n, t, e, j;
102
103 for ( ;; ) {
104 t = nxt_nncq_tail(q);
105 j = nxt_nncq_map(q, t);

--- 17 unchanged lines hidden (view full) ---

123 break;
124 }
125 }
126
127 nxt_nncq_tail_cmp_inc(q, t);
128}
129
130
98nxt_nncq_enqueue(nxt_nncq_t volatile *q, nxt_nncq_atomic_t val)
99{
100 nxt_nncq_cycle_t e_cycle, t_cycle;
101 nxt_nncq_atomic_t n, t, e, j;
102
103 for ( ;; ) {
104 t = nxt_nncq_tail(q);
105 j = nxt_nncq_map(q, t);

--- 17 unchanged lines hidden (view full) ---

123 break;
124 }
125 }
126
127 nxt_nncq_tail_cmp_inc(q, t);
128}
129
130
131static nxt_nncq_atomic_t
131static inline nxt_nncq_atomic_t
132nxt_nncq_dequeue(nxt_nncq_t volatile *q)
133{
134 nxt_nncq_cycle_t e_cycle, h_cycle;
135 nxt_nncq_atomic_t h, j, e;
136
137 for ( ;; ) {
138 h = nxt_nncq_head(q);
139 j = nxt_nncq_map(q, h);

--- 23 unchanged lines hidden ---
132nxt_nncq_dequeue(nxt_nncq_t volatile *q)
133{
134 nxt_nncq_cycle_t e_cycle, h_cycle;
135 nxt_nncq_atomic_t h, j, e;
136
137 for ( ;; ) {
138 h = nxt_nncq_head(q);
139 j = nxt_nncq_map(q, h);

--- 23 unchanged lines hidden ---