STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Public Types
stapl::runtime::fence_md Class Reference

Fence metadata for intergang communication when a gang_md has no representative. More...

Public Member Functions

 fence_md (const gang_md::id gid)
 
gang_md::id get_gang_id (void) const noexcept
 
void add_ref (long count=1, std::memory_order order=std::memory_order_relaxed) noexcept
 Increases the reference count by count.
 
long remove_ref (long count=1, std::memory_order order=std::memory_order_relaxed) noexcept
 Decreases the reference count by count. More...
 
bool release (std::memory_order order=std::memory_order_relaxed) noexcept
 Decreases the reference count, destroying the object if it reached 0. More...
 
long use_count (std::memory_order order=std::memory_order_relaxed) const noexcept
 
bool unique (std::memory_order order=std::memory_order_relaxed) const noexcept
 
void update_sent (const id gid, const nesting_level n, const unsigned int sent)
 
void update_processed (const id gid, const nesting_level n, const unsigned int processed)
 
void update (const id gid, const nesting_level n, const unsigned int sent, const unsigned int processed)
 
template<typename T >
void update (T &&t)
 
container_type retrieve (void)
 
bool none_pending (void) const
 

Public Types

using key_type = std::pair< id, nesting_level >
 
using container_type = std::unordered_map< key_type, int, boost::hash< key_type > >
 

Detailed Description

Fence metadata for intergang communication when a gang_md has no representative.

Member Function Documentation

◆ remove_ref()

long stapl::runtime::ref_counted< fence_md , fence_md_delete >::remove_ref ( long  count = 1,
std::memory_order  order = std::memory_order_relaxed 
)
noexceptinherited

Decreases the reference count by count.

Returns
The new reference count.

◆ release()

bool stapl::runtime::ref_counted< fence_md , fence_md_delete >::release ( std::memory_order  order = std::memory_order_relaxed)
noexceptinherited

Decreases the reference count, destroying the object if it reached 0.

Warning
If release() returns true, then the object has been destroyed.
Returns
true if the object was destroyed, otherwise false.

The documentation for this class was generated from the following file: