From 9e5f41ed6ebe64a789916794626485460078c420 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Sat, 19 Jan 2019 01:29:33 +0100 Subject: - Code style fix - Improved vpp binary api interface - Correction in object pool destructor - Fix error in Memif Connector Change-Id: Id1dd9219fc1ac0b3717ae019ebff17373bebc635 Signed-off-by: Mauro Sardara --- libtransport/src/hicn/transport/utils/object_pool.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'libtransport/src/hicn/transport/utils/object_pool.h') diff --git a/libtransport/src/hicn/transport/utils/object_pool.h b/libtransport/src/hicn/transport/utils/object_pool.h index d4d8e18d6..c369f7e12 100755 --- a/libtransport/src/hicn/transport/utils/object_pool.h +++ b/libtransport/src/hicn/transport/utils/object_pool.h @@ -45,7 +45,11 @@ class ObjectPool { public: using Ptr = std::unique_ptr; - ObjectPool() {} + ObjectPool() : destructor_(false) {} + + ~ObjectPool() { + destructor_ = true; + } std::pair get() { if (object_pool_.empty()) { @@ -60,7 +64,9 @@ class ObjectPool { void add(T *object) { utils::SpinLock::Acquire locked(object_pool_lock_); - object_pool_.emplace_back(makePtr(object)); + if (TRANSPORT_EXPECT_TRUE(!destructor_)) { + object_pool_.emplace_back(makePtr(object)); + } } Ptr makePtr(T *object) { return Ptr(object, ObjectDeleter(this)); } @@ -71,6 +77,7 @@ class ObjectPool { utils::SpinLock object_pool_lock_; std::deque object_pool_; + bool destructor_; }; } // namespace utils \ No newline at end of file -- cgit 1.2.3-korg