From 72851db66655912cb9c92300a80985fb9797d168 Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期二, 01 六月 2021 16:25:23 +0800 Subject: [PATCH] remove AtomicQueue, not used. --- box/status_main.cc | 26 ++++++++++++++++++++------ 1 files changed, 20 insertions(+), 6 deletions(-) diff --git a/box/status_main.cc b/box/status_main.cc index 993fbee..e0fb932 100644 --- a/box/status_main.cc +++ b/box/status_main.cc @@ -31,8 +31,22 @@ int status_main(int argc, char const *argv[]) { - auto &shm = BHomeShm(); + AppArg args(argc, argv); + auto shm_name = args.Get("shm", BHomeShm().name()); + auto shm_size = std::atol(args.Get("size", "").c_str()); + if (shm_size <= 0 || shm_size > 512) { + shm_size = 50; + } + auto DisplayName = [&]() -> std::string { + if (shm_name == BHomeShm().name()) { + return "[bhome shm]"; + } else { + return shm_name; + } + }; + printf("monitoring shm : %s, size : %ldM\n", DisplayName().c_str(), shm_size); + SharedMemory shm(shm_name, 1024 * 1024 * shm_size); std::atomic<bool> run(true); auto Now = []() { return steady_clock::now(); }; @@ -41,7 +55,7 @@ auto showStatus = [&]() { auto next = Now(); const uint64_t start = ToMs(next); - auto last = 0; + auto last = 0ul; while (run) { std::this_thread::sleep_until(next); auto passed = ToMs(next) - start; @@ -62,19 +76,19 @@ int nkb = left / Kb; int nb = left - nkb * Kb; char buf[64] = {0}; - int n = sprintf(buf, " %4dMb %4dKb %4dB", nmb, nkb, nb); - int start = (nmb > 0) ? 0 : ((nkb > 0) ? 7 : 14); + int n = sprintf(buf, " %4dM%4dK%4dB", nmb, nkb, nb); + int start = (nmb > 0) ? 0 : ((nkb > 0) ? 5 : 10); buf[start] = sign; return std::string(buf + start); }; char buf[200] = "\n"; auto Print = [&](bool new_line) { - int n = sprintf(buf, "\r%6ds avail : %12ld = %s %6ds", sec, cur, Pretty(cur).c_str() + 1, sec); + int n = sprintf(buf, "\r%6lds avail : %12ld = %s %6lds", sec, cur, Pretty(cur).c_str() + 1, sec); printf("%s", buf); if (new_line) { auto diff = cur - last; - printf(" (%+ld = %s)\n", diff, Pretty(diff).c_str()); + printf(" (%+6ld = %s)\n", diff, Pretty(diff).c_str()); printf("%s", buf); } fflush(stdout); -- Gitblit v1.8.0