Index: tests/concurrent/channels/parallel_harness.hfa
===================================================================
--- tests/concurrent/channels/parallel_harness.hfa	(revision b49310fe322271ebf1749bbfd961359b03d7c1ef)
+++ tests/concurrent/channels/parallel_harness.hfa	(revision 42b739d7d8a375532eac77b64b9324a9be21fb17)
@@ -38,4 +38,5 @@
 
 volatile bool cons_done = false, prod_done = false;
+volatile int cons_done_count = 0;
 size_t cons_check = 0, prod_check = 0;
 
@@ -64,4 +65,5 @@
     lock(o);
     total_operations += runs;
+    cons_done_count++;
     cons_check = cons_check ^ my_check;
     // sout | "C: " | runs;
@@ -128,5 +130,5 @@
     }
 
-    sleep(10`s);
+    sleep(1`s);
     prod_done = true;
 
@@ -137,12 +139,9 @@
     sout | "prods";
     cons_done = true;
-    for ( i; Channels ) {
-        // sout | get_count( channels[i] );
-        if ( get_count( channels[i] ) < Consumers ){
-            #ifdef BIG
-            bigObject b{0};
-            #endif
-            for ( j; Consumers ) {
+    while( cons_done_count != Consumers * Channels ) {
+        for ( i; Channels ) {
+            if ( has_waiting_consumers( channels[i] ) ){
                 #ifdef BIG
+                bigObject b{0};
                 insert( channels[i], b );
                 #else
@@ -151,5 +150,21 @@
             }
         }
-    }
+        
+    }
+    // for ( i; Channels ) {
+    //     // sout | get_count( channels[i] );
+    //     if ( get_count( channels[i] ) < Consumers ){
+    //         #ifdef BIG
+    //         bigObject b{0};
+    //         #endif
+    //         for ( j; Consumers ) {
+    //             #ifdef BIG
+    //             insert( channels[i], b );
+    //             #else
+    //             insert( channels[i], 0 );
+    //             #endif
+    //         }
+    //     }
+    // }
     sout | "cons";
     for ( i; Consumers * Channels ) {
