From 4fadba32621283dff64cc1b8592896c864f913d4 Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期日, 25 四月 2021 15:41:14 +0800 Subject: [PATCH] mq always create new shm, do not find. --- src/shm_queue.cpp | 16 +++++++++++----- 1 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/shm_queue.cpp b/src/shm_queue.cpp index 1be8021..face18b 100644 --- a/src/shm_queue.cpp +++ b/src/shm_queue.cpp @@ -55,13 +55,19 @@ } // ShmMsgQueue memory usage: (320 + 16*length) bytes, length >= 2 ShmMsgQueue::ShmMsgQueue(const MQId id, ShmType &segment, const int len) : - Super(segment, MsgQIdToName(id), AdjustMQLength(len), segment.get_segment_manager()), - id_(id) + id_(id), + queue_(segment, MsgQIdToName(id_), AdjustMQLength(len), segment.get_segment_manager()) { } ShmMsgQueue::ShmMsgQueue(ShmType &segment, const int len) : - ShmMsgQueue(NewId(), segment, len) {} + id_(NewId()), + queue_(segment, true, MsgQIdToName(id_), AdjustMQLength(len), segment.get_segment_manager()) +{ + if (!queue_.IsOk()) { + throw("error create msgq " + std::to_string(id_)); + } +} ShmMsgQueue::~ShmMsgQueue() {} @@ -74,12 +80,12 @@ msg.Release(); } } - return Super::Remove(shm, MsgQIdToName(id)); + return Shmq::Remove(shm, MsgQIdToName(id)); } ShmMsgQueue::Queue *ShmMsgQueue::Find(SharedMemory &shm, const MQId remote_id) { - return Super::Find(shm, MsgQIdToName(remote_id)); + return Shmq::Find(shm, MsgQIdToName(remote_id)); } bool ShmMsgQueue::TrySend(SharedMemory &shm, const MQId remote_id, const MsgI &msg, OnSend const &onsend) -- Gitblit v1.8.0