From 77a6c3512a44dfe6540dde71946e6484fe4f173f Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期一, 10 五月 2021 16:05:28 +0800 Subject: [PATCH] test lock code. --- utest/api_test.cpp | 91 ++------------------------------------------- 1 files changed, 4 insertions(+), 87 deletions(-) diff --git a/utest/api_test.cpp b/utest/api_test.cpp index 6577b51..bd59c7f 100644 --- a/utest/api_test.cpp +++ b/utest/api_test.cpp @@ -102,91 +102,6 @@ using namespace std::chrono; // using namespace std::chrono_literals; -BOOST_AUTO_TEST_CASE(MutexTest) -{ - // typedef robust::CasMutex<true> RobustMutex; - typedef MutexWithPidCheck RobustMutex; - - for (int i = 0; i < 20; ++i) { - int size = i; - int left = size & 7; - int rsize = size + ((8 - left) & 7); - printf("size: %3d, rsize: %3d\n", size, rsize); - } - SharedMemory &shm = TestShm(); - // shm.Remove(); - // return; - GlobalInit(shm); - - const std::string mtx_name("test_mutex"); - const std::string int_name("test_int"); - auto mtx = shm.FindOrCreate<RobustMutex>(mtx_name); - auto pi = shm.FindOrCreate<int>(int_name, 100); - - std::mutex m; - typedef std::chrono::steady_clock Clock; - auto Now = []() { return Clock::now().time_since_epoch(); }; - if (pi) { - auto old = *pi; - printf("int : %d, add1: %d\n", old, ++*pi); - } - - { - boost::timer::auto_cpu_timer timer; - const int ntimes = 1000 * 1000; - printf("test lock/unlock %d times: ", ntimes); - RobustMutex mutex; - auto Lock = [&]() { - for (int i = 0; i < ntimes; ++i) { - mutex.lock(); - mutex.unlock(); - } - }; - std::thread t1(Lock), t2(Lock); - t1.join(); - t2.join(); - } - - auto MSFromNow = [](const int ms) { - using namespace boost::posix_time; - ptime cur = boost::posix_time::microsec_clock::universal_time(); - return cur + millisec(ms); - }; - - auto TryLock = [&]() { - if (mtx->try_lock()) { - printf("try_lock ok\n"); - return true; - } else { - printf("try_lock failed\n"); - return false; - } - }; - auto Unlock = [&]() { - mtx->unlock(); - printf("unlocked\n"); - }; - - if (mtx) { - printf("mtx exists\n"); - if (TryLock()) { - auto op = [&]() { - if (TryLock()) { - Unlock(); - } - }; - op(); - std::thread t(op); - t.join(); - // Unlock(); - } else { - // mtx->unlock(); - } - } else { - printf("mtx not exists\n"); - } -} - BOOST_AUTO_TEST_CASE(ApiTest) { auto max_time = std::chrono::steady_clock::time_point::max(); @@ -203,6 +118,8 @@ printf("maxsec: %ld\n", CountSeconds(max_time)); + // BHCleanup(); + // return; bool reg = false; for (int i = 0; i < 3 && !reg; ++i) { ProcInfo proc; @@ -234,7 +151,7 @@ bool r = BHRegisterTopics(s.data(), s.size(), &reply, &reply_len, 1000); BHFree(reply, reply_len); // printf("register topic : %s\n", r ? "ok" : "failed"); - Sleep(1s); + // Sleep(1s); } { // Subscribe @@ -367,7 +284,7 @@ threads.Launch(hb, &run); threads.Launch(showStatus, &run); int ncli = 10; - const uint64_t nreq = 1000 * 100; + const int64_t nreq = 1000 * 100; for (int i = 0; i < ncli; ++i) { threads.Launch(asyncRequest, nreq); } -- Gitblit v1.8.0