From eb1f15583eb9e3cb841d6efc028ab53007bf6001 Mon Sep 17 00:00:00 2001 From: mutouyun Date: Thu, 14 Feb 2019 21:29:16 +0800 Subject: [PATCH] close when destruct --- src/waiter_template.inc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/waiter_template.inc b/src/waiter_template.inc index 49e84ea..70b1ef7 100644 --- a/src/waiter_template.inc +++ b/src/waiter_template.inc @@ -26,6 +26,7 @@ IPC_OBJECT_TYPE_::IPC_OBJECT_TYPE_(IPC_OBJECT_TYPE_&& rhs) } IPC_OBJECT_TYPE_::~IPC_OBJECT_TYPE_() { + close(); p_->clear(); } @@ -39,7 +40,7 @@ IPC_OBJECT_TYPE_& IPC_OBJECT_TYPE_::operator=(IPC_OBJECT_TYPE_ rhs) { } bool IPC_OBJECT_TYPE_::valid() const { - return !impl(p_)->n_.empty(); + return (p_ != nullptr) && !impl(p_)->n_.empty(); } char const * IPC_OBJECT_TYPE_::name() const { @@ -60,6 +61,7 @@ bool IPC_OBJECT_TYPE_::open(char const * name IPC_OBJECT_TYPE_OPEN_PARS_) { } void IPC_OBJECT_TYPE_::close() { + if (!valid()) return; impl(p_)->h_.close(); impl(p_)->n_.clear(); }