From 692ec4e9979b18bfe23e08f27caa3605d85fe721 Mon Sep 17 00:00:00 2001 From: Alexey Rybalchenko Date: Tue, 14 Jan 2020 12:29:38 +0100 Subject: [PATCH] Fix CIDs 350447, 321250 (uncaught exception) --- fairmq/shmem/Message.cxx | 11 +++++++++++ fairmq/shmem/Message.h | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/fairmq/shmem/Message.cxx b/fairmq/shmem/Message.cxx index a2622bde..73f1403d 100644 --- a/fairmq/shmem/Message.cxx +++ b/fairmq/shmem/Message.cxx @@ -235,6 +235,17 @@ void Message::CloseMessage() static_cast(GetTransport())->DecrementMsgCounter(); } +Message::~Message() +{ + try { + CloseMessage(); + } catch(SharedMemoryError& sme) { + LOG(error) << "error closing message: " << sme.what(); + } catch(bipc::lock_exception& le) { + LOG(error) << "error closing message: " << le.what(); + } +} + } } } diff --git a/fairmq/shmem/Message.h b/fairmq/shmem/Message.h index d7b79498..8ebeb9b4 100644 --- a/fairmq/shmem/Message.h +++ b/fairmq/shmem/Message.h @@ -56,7 +56,7 @@ class Message final : public fair::mq::Message void Copy(const fair::mq::Message& msg) override; - ~Message() override { CloseMessage(); } + ~Message() override; private: Manager& fManager;