Refactors some of existing cds multi-threaded stress test cases
[libcds.git] / test / stress / misc / mcslock_driver.cpp
index 2a2091b93231f79b7591feb50b38b10262915b92..9a51077ae6c6df9c9445995adf1f31ed5131e5af 100644 (file)
@@ -2,16 +2,17 @@
 #include <atomic>
 #include <cds/gc/dhp.h>
 #include <cds/gc/hp.h>
-#include <cds/sync/mcs-lock.h>
+#include <cds/misc/mcs-lock.h>
 #include <cds_test/stress_test.h>
 #include <iostream>
+#include <memory>
 #include <thread>
 
 using namespace std;
 
 namespace {
 
-static size_t s_nMCSLockThreadCount = 6;
+static size_t s_nMCSLockThreadCount = 4;
 static size_t s_nMCSLockPassCount = 3000000;
 
 class MCSLockTest : public cds_test::stress_fixture {
@@ -43,11 +44,12 @@ cds_others::mcs_mutex *MCSLockTest::my_mutex;
 TEST_F(MCSLockTest, BasicLockUnlock) {
   my_mutex = new cds_others::mcs_mutex();
   x = 0;
-  std::thread *threads = new std::thread[s_nMCSLockThreadCount];
-  for (int i = 0; i < s_nMCSLockThreadCount; i++) {
+  std::unique_ptr<std::thread[]> threads(
+      new std::thread[s_nMCSLockThreadCount]);
+  for (size_t i = 0; i < s_nMCSLockThreadCount; i++) {
     threads[i] = std::thread(Thread);
   }
-  for (int i = 0; i < s_nMCSLockThreadCount; i++) {
+  for (size_t i = 0; i < s_nMCSLockThreadCount; i++) {
     threads[i].join();
   }
   if (x != s_nMCSLockPassCount * s_nMCSLockThreadCount) {