Skip to content

Commit

Permalink
Merge pull request #453 from DARMA-tasking/452-collection-context-all…
Browse files Browse the repository at this point in the history
…ow-test
  • Loading branch information
lifflander authored Sep 9, 2019
2 parents 17d97ed + 962152b commit 013ecdd
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 8 deletions.
6 changes: 4 additions & 2 deletions src/vt/vrt/collection/holders/insert_context_holder.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 2 additions & 0 deletions src/vt/vrt/collection/manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,8 @@ struct CollectionManager {
static IndexT* queryIndexContext();
template <typename IndexT>
static VirtualProxyType queryProxyContext();
template <typename IndexT>
static bool hasContext();

// Async reduce for new collection construction coordination wrt meta-datt
template <typename ColT>
Expand Down
14 changes: 8 additions & 6 deletions src/vt/vrt/collection/manager.impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -1971,17 +1971,19 @@ template <typename ColT, typename ParamT, typename... Args>
template <typename IndexT>
/*static*/ IndexT* CollectionManager::queryIndexContext() {
using IdxContextHolder = InsertContextHolder<IndexT>;
auto const idx = IdxContextHolder::index();
vtAssertExpr(idx != nullptr);
return idx;
return IdxContextHolder::index();
}

template <typename IndexT>
/*static*/ VirtualProxyType CollectionManager::queryProxyContext() {
using IdxContextHolder = InsertContextHolder<IndexT>;
auto const proxy = IdxContextHolder::proxy();
vtAssertExpr(proxy != no_vrt_proxy);
return proxy;
return IdxContextHolder::proxy();
}

template <typename IndexT>
/*static*/ bool CollectionManager::hasContext() {
using IdxContextHolder = InsertContextHolder<IndexT>;
return IdxContextHolder::hasContext();
}

template <typename ColT, typename... Args>
Expand Down

0 comments on commit 013ecdd

Please sign in to comment.