From cf05ea3d9f43e4e84d621e1f9d54cbef552b6e2b Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期二, 18 五月 2021 16:53:28 +0800 Subject: [PATCH] fix center init mutex. --- utest/api_test.cpp | 22 +++++++++++++++++----- 1 files changed, 17 insertions(+), 5 deletions(-) diff --git a/utest/api_test.cpp b/utest/api_test.cpp index c6165e8..44c809d 100644 --- a/utest/api_test.cpp +++ b/utest/api_test.cpp @@ -118,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; @@ -127,7 +129,14 @@ void *reply = 0; int reply_len = 0; reg = BHRegister(proc_buf.data(), proc_buf.size(), &reply, &reply_len, 2000); - printf("register %s\n", reg ? "ok" : "failed"); + if (reg) { + printf("register ok\n"); + } else { + int ec = 0; + std::string msg; + GetLastError(ec, msg); + printf("register failed, %d, %s\n", ec, msg.c_str()); + } BHFree(reply, reply_len); Sleep(1s); @@ -149,7 +158,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 @@ -237,6 +246,7 @@ DEFER1(BHFree(msg_id, len);); // Sleep(10ms, false); std::string dest(BHAddress().SerializeAsString()); + bool r = BHAsyncRequest(dest.data(), dest.size(), s.data(), s.size(), 0, 0); if (r) { ++Status().nrequest_; @@ -282,7 +292,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); } @@ -291,12 +301,13 @@ // } int same = 0; - int64_t last = 0; - while (last < nreq * ncli && same < 2) { + uint64_t last = 0; + while (last < nreq * ncli && same < 3) { Sleep(1s, false); auto cur = Status().nreply_.load(); if (last == cur) { ++same; + printf("same %d\n", same); } else { last = cur; same = 0; @@ -306,6 +317,7 @@ run = false; threads.WaitAll(); auto &st = Status(); + Sleep(1s); printf("nreq: %8ld, nsrv: %8ld, nreply: %8ld\n", st.nrequest_.load(), st.nserved_.load(), st.nreply_.load()); BHCleanup(); printf("after cleanup\n"); -- Gitblit v1.8.0