From 1ff714838c03cba1a18884d5b48a20ee6c4275ac Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期五, 21 五月 2021 15:00:53 +0800 Subject: [PATCH] class MsgI, ShmMsgQueue, no bind to shm. --- box/node_center.cpp | 17 +++++++---------- 1 files changed, 7 insertions(+), 10 deletions(-) diff --git a/box/node_center.cpp b/box/node_center.cpp index 4e228a7..cbaef0e 100644 --- a/box/node_center.cpp +++ b/box/node_center.cpp @@ -57,7 +57,7 @@ { auto pos = msgs_.find(id); if (pos != msgs_.end()) { - ShmMsg(pos->second).Free(); + pos->second.Free(); msgs_.erase(pos); } else { LOG_TRACE() << "ignore late free request."; @@ -101,9 +101,9 @@ int i = 0; int total_count = 0; for (auto &kv : msgs_) { - MsgI msg(kv.second); + auto &msg = kv.second; total_count += msg.Count(); - LOG_TRACE() << " " << i++ << ": msg id: " << kv.first << ", offset: " << kv.second << ", count: " << msg.Count() << ", size: " << msg.Size(); + LOG_TRACE() << " " << i++ << ": msg id: " << kv.first << ", offset: " << kv.second.Offset() << ", count: " << msg.Count() << ", size: " << msg.Size(); } LOG_TRACE() << "total count: " << total_count; } @@ -173,7 +173,7 @@ auto PrepareProcInit = [&](Node &node) { bool r = false; - ShmMsg init_msg; + ShmMsg init_msg(shm); DEFER1(init_msg.Release()); MsgProcInit body; auto head = InitMsgHead(GetType(body), id(), ssn); @@ -238,7 +238,7 @@ if (!FindMq()) { return; } auto size = GetAllocSize((val >> 52) & MaskBits(8)); - MsgI new_msg; + MsgI new_msg(socket.shm()); if (new_msg.Make(size)) { // 31bit proc index, 28bit id, ,4bit cmd+flag int64_t reply = (new_msg.Offset() << 32) | (msg_id << 4) | EncodeCmd(eCmdAllocReply0); @@ -612,18 +612,15 @@ pub.set_topic(topic); pub.set_data(content); BHMsgHead head(InitMsgHead(GetType(pub), id(), 0)); - MsgI msg; + MsgI msg(shm); if (msg.Make(head, pub)) { DEFER1(msg.Release()); RecordMsg(msg); - auto &mq = GetCenterInfo(shm)->mq_sender_; - ShmSocket sender(mq.offset_, shm, mq.id_); - for (auto &cli : clients) { auto node = cli.weak_node_.lock(); if (node && node->state_.flag_ == kStateNormal) { - sender.Send({cli.mq_id_, cli.mq_abs_addr_}, msg); + DefaultSender(shm).Send({cli.mq_id_, cli.mq_abs_addr_}, msg); } } } -- Gitblit v1.8.0