#2428 Checkpoint using latest Magistrate trait-based API#2429
#2428 Checkpoint using latest Magistrate trait-based API#2429Matthew-Whitlock wants to merge 2 commits intodevelopfrom
Conversation
|
diff --git a/src/vt/vrt/proxy/collection_elm_proxy.impl.h b/src/vt/vrt/proxy/collection_elm_proxy.impl.h
index b0608db72..586ecd72b 100644
--- a/src/vt/vrt/proxy/collection_elm_proxy.impl.h
+++ b/src/vt/vrt/proxy/collection_elm_proxy.impl.h
@@ -106,8 +106,8 @@ void VrtElmProxy<ColT, IndexT>::serialize(SerT& s) {
//then immediately deserialize
using listener::ElementEventEnum;
listener::ListenFnType<IndexT> m_listener =
- [*this, buf, listener_id]
- (ElementEventEnum event, IndexT idx, NodeType) mutable {
+ [*this, buf,
+ listener_id](ElementEventEnum event, IndexT idx, NodeType) mutable {
if (!(idx == getIndex()))
return;
if (event != ElementEventEnum::ElementMigratedIn)
|
038d3f1 to
7eb4863
Compare
7eb4863 to
0af1389
Compare
0af1389 to
4176e68
Compare
| //We need a traitless serializer, since StoreElmBase uses virtual | ||
| //serialization. It doesn't use any traits to specialize serializing | ||
| //though, so this is fine. | ||
| auto clean_s = s.setTraits(); |
There was a problem hiding this comment.
Is setTraits() actually just getting s with an empty set of traits, or is it mutating s itself? This looks like either mis-use, or mis-naming.
There was a problem hiding this comment.
This is getting s with an empty set of traits. The traits are immutable, since they're types. I can see how the naming may be misleading, but setTraits() (which gets a serializer with only the specified traits) needs to be distinct from withTraits() and withoutTraits() (which get serializers with the specified traits added-to/removed-from the existing traits). Happy to rename if you have any suggestions, but that'd be a PR in Magistrate
There was a problem hiding this comment.
asTraits() seems a little clearer
Closes #2428
This also enables recovering to the same proxy ID as checkpointed, when possible. Some additional minor convenience features used for resilience are also included, like getting the index from a collection element proxy and getting the objgroup proxy from an objgroup element proxy.