From 36e6a35a886252516f168b90f7a9a7c1c5177312 Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期六, 08 五月 2021 15:57:01 +0800
Subject: [PATCH] center alloc node queue; node just find them.

---
 src/shm_msg_queue.cpp |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/shm_msg_queue.cpp b/src/shm_msg_queue.cpp
index 38c5f1c..17558de 100644
--- a/src/shm_msg_queue.cpp
+++ b/src/shm_msg_queue.cpp
@@ -36,21 +36,23 @@
 	static auto &id = GetData();
 	return (++id) * 10;
 }
-// ShmMsgQueue memory usage: (320 + 16*length) bytes, length >= 2
+
 ShmMsgQueue::ShmMsgQueue(const MQId id, ShmType &segment, const int len) :
     id_(id),
     queue_(segment, MsgQIdToName(id_)) //, AdjustMQLength(len), segment.get_segment_manager())
 {
 }
 
-ShmMsgQueue::ShmMsgQueue(ShmType &segment, const int len) :
-    id_(NewId()),
-    queue_(segment, true, MsgQIdToName(id_)) //, AdjustMQLength(len), segment.get_segment_manager())
+ShmMsgQueue::ShmMsgQueue(const MQId id, const bool create_or_else_find, ShmType &segment, const int len) :
+    id_(id),
+    queue_(segment, create_or_else_find, MsgQIdToName(id_))
 {
 	if (!queue_.IsOk()) {
-		throw("error create msgq " + std::to_string(id_));
+		throw("error create/find msgq " + std::to_string(id_));
 	}
 }
+ShmMsgQueue::ShmMsgQueue(ShmType &segment, const int len) :
+    ShmMsgQueue(NewId(), true, segment, len) {}
 
 ShmMsgQueue::~ShmMsgQueue() {}
 

--
Gitblit v1.8.0