@@ -33,6 +33,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
33
33
#define IRAM_ATTR
34
34
#endif
35
35
36
+ using std::min;
37
+
36
38
/* !
37
39
@brief Instance class for a single-producer, single-consumer circular queue / ring buffer (FIFO).
38
40
This implementation is lock-free between producer and consumer for the available(), peek(),
@@ -236,15 +238,15 @@ size_t circular_queue<T>::push_n(const T* buffer, size_t size)
236
238
const auto outPos = m_outPos.load (std::memory_order_relaxed);
237
239
238
240
size_t blockSize = (outPos > inPos) ? outPos - 1 - inPos : (outPos == 0 ) ? m_bufSize - 1 - inPos : m_bufSize - inPos;
239
- blockSize = std:: min (size, blockSize);
241
+ blockSize = min (size, blockSize);
240
242
if (!blockSize) return 0 ;
241
243
int next = (inPos + blockSize) % m_bufSize;
242
244
243
245
std::atomic_thread_fence (std::memory_order_acquire);
244
246
245
247
auto dest = m_buffer.get () + inPos;
246
248
std::copy_n (std::make_move_iterator (buffer), blockSize, dest);
247
- size = std:: min (size - blockSize, outPos > 1 ? static_cast <size_t >(outPos - next - 1 ) : 0 );
249
+ size = min (size - blockSize, outPos > 1 ? static_cast <size_t >(outPos - next - 1 ) : 0 );
248
250
next += size;
249
251
dest = m_buffer.get ();
250
252
std::copy_n (std::make_move_iterator (buffer + blockSize), size, dest);
@@ -273,10 +275,10 @@ T circular_queue<T>::pop()
273
275
274
276
template < typename T >
275
277
size_t circular_queue<T>::pop_n(T* buffer, size_t size) {
276
- size_t avail = size = std:: min (size, available ());
278
+ size_t avail = size = min (size, available ());
277
279
if (!avail) return 0 ;
278
280
const auto outPos = m_outPos.load (std::memory_order_acquire);
279
- size_t n = std:: min (avail, static_cast <size_t >(m_bufSize - outPos));
281
+ size_t n = min (avail, static_cast <size_t >(m_bufSize - outPos));
280
282
281
283
std::atomic_thread_fence (std::memory_order_acquire);
282
284
0 commit comments