File tree Expand file tree Collapse file tree 4 files changed +11
-4
lines changed
examples/tests/basic/test-queue Expand file tree Collapse file tree 4 files changed +11
-4
lines changed Original file line number Diff line number Diff line change 1
1
#include " AudioTools.h"
2
+ #include " Concurrency/QueueLockFree.h"
2
3
4
+ // select the queue implementation:
3
5
// Queue<int> q;
4
- QueueFromVector<int > q{0 ,10 };
6
+ // QueueFromVector<int> q{10, 0};
7
+ QueueLockFree<int > q (10 );
5
8
6
9
void setup (){
7
10
Serial.begin (115200 );
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ namespace audio_tools {
13
13
template <class T >
14
14
class QueueFromVector {
15
15
public:
16
- QueueFromVector (T empty, size_t size ) {
16
+ QueueFromVector (size_t size, T empty ) {
17
17
null_value = empty;
18
18
resize (size);
19
19
};
@@ -72,6 +72,8 @@ class QueueFromVector {
72
72
bool is_full () {
73
73
return _size >= vector.size ();
74
74
}
75
+
76
+ size_t capacity () { return vector.capacity (); }
75
77
76
78
void setAllocator (Allocator &allocator){
77
79
vector.setAllocator (allocator);
Original file line number Diff line number Diff line change @@ -722,8 +722,8 @@ class NBuffer : public BaseBuffer<T> {
722
722
uint16_t buffer_count = 0 ;
723
723
BaseBuffer<T> *actual_read_buffer = nullptr ;
724
724
BaseBuffer<T> *actual_write_buffer = nullptr ;
725
- QueueFromVector<BaseBuffer<T> *> available_buffers{nullptr , 0 };
726
- QueueFromVector<BaseBuffer<T> *> filled_buffers{nullptr , 0 };
725
+ QueueFromVector<BaseBuffer<T> *> available_buffers{0 , nullptr };
726
+ QueueFromVector<BaseBuffer<T> *> filled_buffers{0 , nullptr };
727
727
unsigned long start_time = 0 ;
728
728
unsigned long sample_count = 0 ;
729
729
Original file line number Diff line number Diff line change @@ -47,6 +47,8 @@ class QueueLockFree {
47
47
48
48
size_t capacity () const { return capacity_value; }
49
49
50
+ bool empty () { return size () == 0 ;}
51
+
50
52
size_t size () const {
51
53
size_t head = head_pos.load (std::memory_order_acquire);
52
54
return tail_pos.load (std::memory_order_relaxed) - head;
You can’t perform that action at this time.
0 commit comments