lichao
2021-04-28 854c63136c4d3a195e2dc617cd7330650bbaf504
fix Cleanup and center online map not removed.
2个文件已修改
22 ■■■■ 已修改文件
box/center.cpp 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/bh_api.cpp 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
box/center.cpp
@@ -392,9 +392,18 @@
        EraseMapRec(service_map_, node->services_);
        EraseMapRec(subscribe_map_, node->subscriptions_);
        // remove online record.
        auto pos = online_node_addr_map_.find(node->proc_.proc_id());
        if (pos != online_node_addr_map_.end()) {
            if (node->addrs_.find(pos->second) != node->addrs_.end()) {
                online_node_addr_map_.erase(pos);
            }
        }
        for (auto &addr : node->addrs_) {
            cleaner_(addr);
        }
        node->addrs_.clear();
    }
    std::string id_; // center proc id;
src/bh_api.cpp
@@ -8,11 +8,15 @@
namespace
{
TopicNode &ProcNode()
std::unique_ptr<TopicNode> &ProcNodePtr()
{
    static bool init = GlobalInit(BHomeShm());
    static TopicNode node(BHomeShm());
    return node;
    static std::unique_ptr<TopicNode> ptr(new TopicNode(BHomeShm()));
    return ptr;
}
TopicNode &ProcNode()
{
    return *ProcNodePtr();
}
class TmpPtr : private boost::noncopyable
@@ -322,7 +326,8 @@
int BHCleanup()
{
    ProcNode().Stop();
    ProcNodePtr().reset();
    return 0;
}
int BHGetLastError(void **msg, int *msg_len)