File tree Expand file tree Collapse file tree 1 file changed +15
-6
lines changed
Expand file tree Collapse file tree 1 file changed +15
-6
lines changed Original file line number Diff line number Diff line change @@ -24,21 +24,30 @@ TEST_CASE("consumer_queue", "[queue][basic]") {
2424}
2525
2626TEST_CASE (" consumer_queue_threaded" , " [queue][threads]" ) {
27- const int size = 10000 ;
27+ const int size = 100000 ;
2828 lsl::factory fac (lsl_channel_format_t ::cft_int8, 4 , 1 );
2929 auto sample = fac.new_sample (0.0 , true );
3030 lsl::consumer_queue queue (size);
3131 std::atomic<bool > done{false };
3232
3333 std::thread pusher ([&]() {
34- for (int i = 0 ; i < size; ++i) queue.push_sample (sample);
35- INFO (queue.read_available ());
34+ for (unsigned int i = 0 ; i < size; ++i) queue.push_sample (sample);
3635 done = true ;
3736 });
3837
39- unsigned int n = 0 , total = 0 ;
38+ unsigned flushes = 0 , pulled = 0 ;
4039 // Pull samples until the pusher is done and the queue is empty
41- while ((n = queue.flush ()) != 0 || !done) total += n;
42- CHECK (total == size);
40+ while (true ) {
41+ unsigned int n = queue.flush ();
42+ if (n) {
43+ flushes++;
44+ pulled += n;
45+ } else {
46+ if (done && queue.read_available () == 0 ) break ;
47+ std::this_thread::yield ();
48+ }
49+ }
50+ INFO (flushes)
51+ CHECK (pulled == size);
4352 pusher.join ();
4453}
You can’t perform that action at this time.
0 commit comments