From f98cd52265e495efa29d715e1e179f1a26783534 Mon Sep 17 00:00:00 2001 From: Paul Nathan Stickney Date: Sun, 27 Oct 2019 19:12:19 -0700 Subject: [PATCH 1/7] #521: eliminate lambda-closure (and VirtualMsgPtr entirely) - Folded VirtualMsgPtr into MsgSharedPtr making 'to' and 'toVirtual' synonyms. If the wrapped message type has a non-trivial destructor then a proxy 'deref' object is is used so that all derefs will apply to the original T-type (and thus invoke the delete-expression appropriately). This type-erasure ensures that 'messageDeref' is always invoked upon the correct T for expeted delete-expr behavior. - Remove unused code and unified methods - Ensure move contructor and added move-assignment operator (steal resources!!!!) - Remove messageDeref> templates; if having a MsgSharedPtr, use it.. --- src/vt/messaging/message/refs.h | 6 - src/vt/messaging/message/refs.impl.h | 10 - src/vt/messaging/message/smart_ptr.h | 274 +++++++++++-------- src/vt/messaging/message/smart_ptr_virtual.h | 104 ------- src/vt/messaging/pending_send.cc | 2 +- src/vt/objgroup/manager.cc | 2 +- src/vt/objgroup/manager.fwd.h | 1 - src/vt/objgroup/manager.h | 2 +- 8 files changed, 158 insertions(+), 243 deletions(-) delete mode 100644 src/vt/messaging/message/smart_ptr_virtual.h diff --git a/src/vt/messaging/message/refs.h b/src/vt/messaging/message/refs.h index ccea1bba36..26d70383dd 100644 --- a/src/vt/messaging/message/refs.h +++ b/src/vt/messaging/message/refs.h @@ -51,15 +51,9 @@ namespace vt { -template