lichao
2021-05-17 cab831748a2a9cc18b7f18f3b5e14a4374b7ab68
src/bh_api.cpp
@@ -30,7 +30,11 @@
}
std::unique_ptr<TopicNode> &ProcNodePtr()
{
   static bool init = GlobalInit(BHomeShm());
   static std::mutex mtx;
   std::lock_guard<std::mutex> lk(mtx);
   static std::unique_ptr<TopicNode> ptr;
   if (!ptr && GlobalInit(BHomeShm())) {
   auto InitLog = []() {
      auto id = GetProcExe();
      char path[200] = {0};
@@ -39,7 +43,8 @@
      return true;
   };
   static bool init_log = InitLog();
   static std::unique_ptr<TopicNode> ptr(new TopicNode(BHomeShm()));
      ptr.reset(new TopicNode(BHomeShm()));
   }
   return ptr;
}
TopicNode &ProcNode()
@@ -114,6 +119,12 @@
      return false;
   }
   MsgOut msg_reply;
   auto &ptr = ProcNodePtr();
   if (!ptr) {
      SetLastError(eNotFound, "center not started.");
      return 0;
   }
   return (ProcNode().*mfunc)(input, msg_reply, timeout_ms) &&
          PackOutput(msg_reply, reply, reply_len);
}