Refactors some of existing cds multi-threaded stress test cases
[libcds.git] / test / stress / misc / barrier_driver.cpp
index 438d033a88798b1949ebe1d4f9525ffa4de4093c..e7878fdc3d734d859aa784c27ee20bcc8e60f490 100644 (file)
@@ -2,9 +2,10 @@
 #include <atomic>
 #include <cds/gc/dhp.h>
 #include <cds/gc/hp.h>
-#include <cds/sync/barrier.h>
+#include <cds/misc/barrier.h>
 #include <cds_test/stress_test.h>
 #include <iostream>
+#include <memory>
 #include <thread>
 
 using namespace std;
@@ -13,13 +14,13 @@ namespace {
 
 typedef cds_others::SpinBarrier Barrier;
 
-static size_t s_nBarrierThreadCount = 6;
+static size_t s_nBarrierThreadCount = 4;
 static size_t s_nBarrierPassCount = 100000000;
 
 class BarrierTest : public cds_test::stress_fixture {
 protected:
   static Barrier *barrier;
-  static int count;
+  static size_t count;
 
   static void SetUpTestCase() {
     cds_test::config const &cfg = get_config("Misc");
@@ -43,16 +44,16 @@ protected:
 };
 
 Barrier *BarrierTest::barrier;
-int BarrierTest::count;
+size_t BarrierTest::count;
 
 TEST_F(BarrierTest, Wait) {
   barrier = new Barrier(s_nBarrierThreadCount);
-  std::thread *threads = new std::thread[s_nBarrierThreadCount];
-  for (int i = 0; i < s_nBarrierThreadCount; i++) {
+  std::unique_ptr<std::thread[]> threads(new std::thread[s_nBarrierThreadCount]);
+  for (size_t i = 0; i < s_nBarrierThreadCount; i++) {
     threads[i] = std::thread(Thread);
   }
 
-  for (int i = 0; i < s_nBarrierThreadCount; i++) {
+  for (size_t i = 0; i < s_nBarrierThreadCount; i++) {
     threads[i].join();
   }
 }