diff --git a/src/vt/vrt/collection/holders/insert_context_holder.h b/src/vt/vrt/collection/holders/insert_context_holder.h index 2db348f61a..530eccbb73 100644 --- a/src/vt/vrt/collection/holders/insert_context_holder.h +++ b/src/vt/vrt/collection/holders/insert_context_holder.h @@ -65,15 +65,17 @@ struct InsertContextHolder { } static IndexT* index() { - vtAssertExpr(ctx_idx != nullptr); return ctx_idx; } static VirtualProxyType proxy() { - vtAssertExpr(ctx_proxy != no_vrt_proxy); return ctx_proxy; } + static bool hasContext() { + return ctx_idx != nullptr and ctx_proxy != no_vrt_proxy; + } + private: static IndexT* ctx_idx; static VirtualProxyType ctx_proxy; diff --git a/src/vt/vrt/collection/manager.h b/src/vt/vrt/collection/manager.h index df9fd45d50..f70fc2fd1e 100644 --- a/src/vt/vrt/collection/manager.h +++ b/src/vt/vrt/collection/manager.h @@ -266,6 +266,8 @@ struct CollectionManager { static IndexT* queryIndexContext(); template static VirtualProxyType queryProxyContext(); + template + static bool hasContext(); // Async reduce for new collection construction coordination wrt meta-datt template diff --git a/src/vt/vrt/collection/manager.impl.h b/src/vt/vrt/collection/manager.impl.h index e366b2d981..55251262a8 100644 --- a/src/vt/vrt/collection/manager.impl.h +++ b/src/vt/vrt/collection/manager.impl.h @@ -1971,17 +1971,19 @@ template template /*static*/ IndexT* CollectionManager::queryIndexContext() { using IdxContextHolder = InsertContextHolder; - auto const idx = IdxContextHolder::index(); - vtAssertExpr(idx != nullptr); - return idx; + return IdxContextHolder::index(); } template /*static*/ VirtualProxyType CollectionManager::queryProxyContext() { using IdxContextHolder = InsertContextHolder; - auto const proxy = IdxContextHolder::proxy(); - vtAssertExpr(proxy != no_vrt_proxy); - return proxy; + return IdxContextHolder::proxy(); +} + +template +/*static*/ bool CollectionManager::hasContext() { + using IdxContextHolder = InsertContextHolder; + return IdxContextHolder::hasContext(); } template