X-Git-Url: http://plrg.eecs.uci.edu/git/?p=libcds.git;a=blobdiff_plain;f=test%2Fstress%2Fmisc%2Fmcslock_driver.cpp;h=2a2091b93231f79b7591feb50b38b10262915b92;hp=1435e971512cffe2cced76e125298b95debb1e80;hb=1621e9e488395f489590c3fc497c28382fb17fd1;hpb=197419a18f00be2e7478e07ab03025856cd5bf34;ds=sidebyside diff --git a/test/stress/misc/mcslock_driver.cpp b/test/stress/misc/mcslock_driver.cpp index 1435e971..2a2091b9 100644 --- a/test/stress/misc/mcslock_driver.cpp +++ b/test/stress/misc/mcslock_driver.cpp @@ -27,11 +27,10 @@ protected: static void Thread() { cds_others::mcs_mutex::guard g(my_mutex); - x = 1; my_mutex->unlock(&g); for (ullong i = 0; i < s_nMCSLockPassCount; i++) { my_mutex->lock(&g); - x = i; + x++; my_mutex->unlock(&g); } my_mutex->lock(&g); @@ -43,14 +42,17 @@ 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++) { threads[i] = std::thread(Thread); } - for (int i = 0; i < s_nMCSLockThreadCount; i++) { threads[i].join(); } + if (x != s_nMCSLockPassCount * s_nMCSLockThreadCount) { + cout << "MCS lock incorrect\n"; + } } } // namespace