lichao
2021-06-01 72851db66655912cb9c92300a80985fb9797d168
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(); };
@@ -62,8 +76,8 @@
            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);
         };
@@ -74,7 +88,7 @@
            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);