32 #ifndef _GLIBCXX_PARALLEL_QUEUE_H
33 #define _GLIBCXX_PARALLEL_QUEUE_H 1
40 #define _GLIBCXX_VOLATILE volatile
42 namespace __gnu_parallel
51 template<
typename _Tp>
70 _M_max_size = __max_size;
71 _M_base =
new _Tp[__max_size];
85 _CASable __former_borders = _M_borders;
86 int __former_front, __former_back;
87 __decode2(__former_borders, __former_front, __former_back);
88 *(_M_base + __former_front % _M_max_size) = __t;
89 #if _GLIBCXX_ASSERTIONS
91 _GLIBCXX_PARALLEL_ASSERT(((__former_front + 1) - __former_back)
102 int __former_front, __former_back;
104 __decode2(_M_borders, __former_front, __former_back);
105 while (__former_front > __former_back)
115 __t = *(_M_base + (__former_front - 1) % _M_max_size);
119 __decode2(_M_borders, __former_front, __former_back);
129 int __former_front, __former_back;
131 __decode2(_M_borders, __former_front, __former_back);
132 while (__former_front > __former_back)
142 __t = *(_M_base + __former_back % _M_max_size);
146 __decode2(_M_borders, __former_front, __former_back);
153 #undef _GLIBCXX_VOLATILE