| | |
| | | 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); |
| | |
| | | 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_; |
| | |
| | | |
| | | int same = 0; |
| | | uint64_t last = 0; |
| | | while (last < nreq * ncli && same < 2) { |
| | | 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; |
| | |
| | | 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"); |