concurrency¶
#include <compatibility/hpx/util/spinlock_pool.hpp>¶
#include <compatibility/hpx/util/itt_notify.hpp>¶
#include <compatibility/hpx/util/spinlock.hpp>¶
#include <compatibility/hpx/util/lockfree/freelist.hpp>¶
#include <compatibility/hpx/util/lockfree/concurrentqueue.hpp>¶
#include <compatibility/hpx/util/lockfree/deque.hpp>¶
#include <compatibility/hpx/compat/barrier.hpp>¶
#include <hpx/concurrency/thread_name.hpp>¶
#include <hpx/concurrency/concurrentqueue.hpp>¶
Defines
- 
MOODYCAMEL_THREADLOCAL¶ 
- 
MOODYCAMEL_EXCEPTIONS_ENABLED¶ 
- 
MOODYCAMEL_TRY¶ 
- 
MOODYCAMEL_CATCH(...)¶ 
- 
MOODYCAMEL_RETHROW¶ 
- 
MOODYCAMEL_THROW(expr)¶ 
- 
MOODYCAMEL_NOEXCEPT¶ 
- 
MOODYCAMEL_NOEXCEPT_CTOR(type, valueType, expr)¶ 
- 
MOODYCAMEL_NOEXCEPT_ASSIGN(type, valueType, expr)¶ 
- 
MOODYCAMEL_DELETE_FUNCTION¶ 
- 
namespace 
moodycamel¶ Functions
- 
template <typename T, typename Traits>
voidswap(typename ConcurrentQueue<T, Traits>::ImplicitProducerKVP &a, typename ConcurrentQueue<T, Traits>::ImplicitProducerKVP &b)¶ 
- 
template <typename T, typename Traits>
voidswap(ConcurrentQueue<T, Traits> &a, ConcurrentQueue<T, Traits> &b)¶ 
- 
void 
swap(ProducerToken &a, ProducerToken &b)¶ 
- 
void 
swap(ConsumerToken &a, ConsumerToken &b)¶ 
- 
template <typename T, typename Traits = ConcurrentQueueDefaultTraits>
classConcurrentQueue¶ Public Types
- 
typedef moodycamel::ProducerToken 
producer_token_t¶ 
- 
typedef moodycamel::ConsumerToken 
consumer_token_t¶ 
- 
typedef Traits::index_t 
index_t¶ 
- 
typedef Traits::size_t 
size_t¶ 
Public Functions
- 
ConcurrentQueue(size_t capacity = 6 * BLOCK_SIZE)¶ 
- 
~ConcurrentQueue()¶ 
- 
ConcurrentQueue(ConcurrentQueue const&)¶ 
- 
ConcurrentQueue &
operator=(ConcurrentQueue const&)¶ 
- 
ConcurrentQueue(ConcurrentQueue &&other)¶ 
- 
ConcurrentQueue &
operator=(ConcurrentQueue &&other)¶ 
- 
void 
swap(ConcurrentQueue &other)¶ 
- 
bool 
enqueue(T const &item)¶ 
- 
bool 
enqueue(T &&item)¶ 
- 
bool 
enqueue(producer_token_t const &token, T const &item)¶ 
- 
bool 
enqueue(producer_token_t const &token, T &&item)¶ 
- 
template <typename It>
boolenqueue_bulk(producer_token_t const &token, It itemFirst, size_t count)¶ 
- 
bool 
try_enqueue(T const &item)¶ 
- 
bool 
try_enqueue(T &&item)¶ 
- 
bool 
try_enqueue(producer_token_t const &token, T const &item)¶ 
- 
bool 
try_enqueue(producer_token_t const &token, T &&item)¶ 
- 
template <typename It>
booltry_enqueue_bulk(producer_token_t const &token, It itemFirst, size_t count)¶ 
- 
template <typename U>
booltry_dequeue(U &item)¶ 
- 
template <typename U>
booltry_dequeue_non_interleaved(U &item)¶ 
- 
template <typename U>
booltry_dequeue(consumer_token_t &token, U &item)¶ 
- 
template <typename It>
size_ttry_dequeue_bulk(consumer_token_t &token, It itemFirst, size_t max)¶ 
- 
template <typename U>
booltry_dequeue_from_producer(producer_token_t const &producer, U &item)¶ 
- 
template <typename It>
size_ttry_dequeue_bulk_from_producer(producer_token_t const &producer, It itemFirst, size_t max)¶ 
Public Static Functions
- 
static bool 
is_lock_free()¶ 
Public Static Attributes
- 
const size_t 
EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD= static_cast<size_t>(Traits::EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD)¶ 
- 
const size_t 
EXPLICIT_INITIAL_INDEX_SIZE= static_cast<size_t>(Traits::EXPLICIT_INITIAL_INDEX_SIZE)¶ 
- 
const size_t 
IMPLICIT_INITIAL_INDEX_SIZE= static_cast<size_t>(Traits::IMPLICIT_INITIAL_INDEX_SIZE)¶ 
- 
const size_t 
INITIAL_IMPLICIT_PRODUCER_HASH_SIZE= static_cast<size_t>(Traits::INITIAL_IMPLICIT_PRODUCER_HASH_SIZE)¶ 
- 
const std::uint32_t 
EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE= static_cast<std::uint32_t>(Traits::EXPLICIT_CONSUMER_CONSUMPTION_QUOTA_BEFORE_ROTATE)¶ 
- 
const size_t 
MAX_SUBQUEUE_SIZE= (details::const_numeric_max<size_t>::value - static_cast<size_t>(Traits::MAX_SUBQUEUE_SIZE) < BLOCK_SIZE) ? details::const_numeric_max<size_t>::value : ((static_cast<size_t>(Traits::MAX_SUBQUEUE_SIZE) + (BLOCK_SIZE - 1)) / BLOCK_SIZE * BLOCK_SIZE)¶ 
Private Types
Private Functions
- 
ConcurrentQueue &
swap_internal(ConcurrentQueue &other)¶ 
- 
template <AllocationMode canAlloc, typename U>
boolinner_enqueue(producer_token_t const &token, U &&element)¶ 
- 
template <AllocationMode canAlloc, typename U>
boolinner_enqueue(U &&element)¶ 
- 
template <AllocationMode canAlloc, typename It>
boolinner_enqueue_bulk(producer_token_t const &token, It itemFirst, size_t count)¶ 
- 
bool 
update_current_producer_after_rotation(consumer_token_t &token)¶ 
- 
ProducerBase *
recycle_or_create_producer(bool isExplicit)¶ 
- 
ProducerBase *
recycle_or_create_producer(bool isExplicit, bool &recycled)¶ 
- 
ProducerBase *
add_producer(ProducerBase *producer)¶ 
- 
void 
reown_producers()¶ 
- 
void 
populate_initial_implicit_producer_hash()¶ 
- 
void 
swap_implicit_producer_hashes(ConcurrentQueue &other)¶ 
- 
ImplicitProducer *
get_or_add_implicit_producer()¶ 
Private Members
- 
std::atomic<ProducerBase *> 
producerListTail¶ 
- 
std::atomic<ImplicitProducerHash *> 
implicitProducerHash¶ 
- 
ImplicitProducerHash 
initialImplicitProducerHash¶ 
- 
std::array<ImplicitProducerKVP, INITIAL_IMPLICIT_PRODUCER_HASH_SIZE> 
initialImplicitProducerHashEntries¶ 
Private Static Functions
- 
template <typename U>
static U *create()¶ 
- 
template <typename U, typename A1>
static U *create(A1 &&a1)¶ 
- 
template <typename U>
static voiddestroy(U *p)¶ 
Friends
- 
friend 
moodycamel::ProducerToken 
- 
friend 
moodycamel::ConsumerToken 
- 
friend 
moodycamel::ExplicitProducer 
- 
friend 
moodycamel::ImplicitProducer 
- 
friend 
moodycamel::ConcurrentQueueTests 
- 
template <typename XT, typename XTraits>
voidswap(typename ConcurrentQueue<XT, XTraits>::ImplicitProducerKVP&, typename ConcurrentQueue<XT, XTraits>::ImplicitProducerKVP&)¶ 
- 
struct 
Block¶ Public Functions
- 
template<>
Block()¶ 
- 
template <InnerQueueContext context>
template<>
boolis_empty() const¶ 
- 
template <InnerQueueContext context>
template<>
boolset_empty(index_t i)¶ 
- 
template <InnerQueueContext context>
template<>
boolset_many_empty(index_t i, size_t count)¶ 
- 
template <InnerQueueContext context>
template<>
voidset_all_empty()¶ 
- 
template <InnerQueueContext context>
template<>
voidreset_empty()¶ 
- 
template<>
T *operator[](index_t idx)¶ 
- 
template<>
T const *operator[](index_t idx) const¶ 
Public Members
- 
template<>
charelements[sizeof(T) *BLOCK_SIZE]¶ 
- 
template<>
details::max_align_tdummy¶ 
- 
template<>
Block *next¶ 
- 
std::atomic<bool> moodycamel::ConcurrentQueue< T, Traits >::Block::emptyFlags[BLOCK_SIZE<=EXPLICIT_BLOCK_EMPTY_COUNTER_THRESHOLD ? BLOCK_SIZE :1] 
- 
template<>
booldynamicallyAllocated¶ 
Private Members
- 
union moodycamel::ConcurrentQueue::Block::@8 moodycamel::ConcurrentQueue< T, Traits >::Block::@9 
- 
template<>
 
- 
struct 
ExplicitProducer: public moodycamel::ConcurrentQueue<T, Traits>::ProducerBase¶ Public Functions
- 
template<>
ExplicitProducer(ConcurrentQueue *parent)¶ 
- 
template<>
~ExplicitProducer()¶ 
- 
template <AllocationMode allocMode, typename U>
template<>
boolenqueue(U &&element)¶ 
- 
template <typename U>
template<>
booldequeue(U &element)¶ 
- 
template <AllocationMode allocMode, typename It>
template<>
boolenqueue_bulk(It itemFirst, size_t count)¶ 
- 
template <typename It>
template<>
size_tdequeue_bulk(It &itemFirst, size_t max)¶ 
Private Functions
- 
template<>
boolnew_block_index(size_t numberOfFilledSlotsToExpose)¶ 
Private Members
- 
template<>
size_tpr_blockIndexSlotsUsed¶ 
- 
template<>
size_tpr_blockIndexSize¶ 
- 
template<>
size_tpr_blockIndexFront¶ 
- 
template<>
BlockIndexEntry *pr_blockIndexEntries¶ 
- 
template<>
void *pr_blockIndexRaw¶ 
- 
struct 
BlockIndexEntry¶ 
- 
struct 
BlockIndexHeader¶ 
- 
template<>
 
- 
template <typename N>
structFreeList¶ Public Functions
- 
template<>
FreeList()¶ 
- 
template<>
voidswap(FreeList &other)¶ 
- 
template<>
FreeList &operator=(FreeList const&)¶ 
- 
template<>
voidadd(N *node)¶ 
- 
template<>
N *try_get()¶ 
- 
template<>
N *head_unsafe() const¶ 
Private Functions
- 
template<>
voidadd_knowing_refcount_is_zero(N *node)¶ 
- 
template<>
 
- 
struct 
ImplicitProducer: public moodycamel::ConcurrentQueue<T, Traits>::ProducerBase¶ Public Functions
- 
template<>
ImplicitProducer(ConcurrentQueue *parent)¶ 
- 
template<>
~ImplicitProducer()¶ 
- 
template <AllocationMode allocMode, typename U>
template<>
boolenqueue(U &&element)¶ 
- 
template <typename U>
template<>
booldequeue(U &element)¶ 
- 
template <AllocationMode allocMode, typename It>
template<>
boolenqueue_bulk(It itemFirst, size_t count)¶ 
- 
template <typename It>
template<>
size_tdequeue_bulk(It &itemFirst, size_t max)¶ 
Private Functions
- 
template <AllocationMode allocMode>
template<>
boolinsert_block_index_entry(BlockIndexEntry *&idxEntry, index_t blockStartIndex)¶ 
- 
template<>
voidrewind_block_index_tail()¶ 
- 
template<>
BlockIndexEntry *get_block_index_entry_for_index(index_t index) const¶ 
- 
template<>
size_tget_block_index_index_for_index(index_t index, BlockIndexHeader *&localBlockIndex) const¶ 
- 
template<>
boolnew_block_index()¶ 
Private Members
- 
template<>
size_tnextBlockIndexCapacity¶ 
Private Static Attributes
- 
template<>
const index_tINVALID_BLOCK_BASE= 1¶ 
- 
struct 
BlockIndexEntry¶ 
- 
struct 
BlockIndexHeader¶ 
- 
template<>
 
- 
struct 
ImplicitProducerHash¶ 
- 
struct 
ImplicitProducerKVP¶ Public Functions
- 
template<>
ImplicitProducerKVP()¶ 
- 
template<>
ImplicitProducerKVP(ImplicitProducerKVP &&other)¶ 
- 
template<>
ImplicitProducerKVP &operator=(ImplicitProducerKVP &&other)¶ 
- 
template<>
voidswap(ImplicitProducerKVP &other)¶ 
- 
template<>
 
- 
struct 
ProducerBase: public moodycamel::details::ConcurrentQueueProducerTypelessBase¶ Public Functions
- 
template<>
ProducerBase(ConcurrentQueue *parent_, bool isExplicit_)¶ 
- 
template<>
virtual~ProducerBase()¶ 
- 
template <typename U>
template<>
booldequeue(U &element)¶ 
- 
template <typename It>
template<>
size_tdequeue_bulk(It &itemFirst, size_t max)¶ 
- 
template<>
ProducerBase *next_prod() const¶ 
- 
template<>
size_tsize_approx() const¶ 
- 
template<>
index_tgetTail() const¶ 
- 
template<>
 
- 
typedef moodycamel::ProducerToken 
 
- 
struct 
ConcurrentQueueDefaultTraits¶ - 
Public Static Attributes
- 
const size_t 
MAX_SUBQUEUE_SIZE= details::const_numeric_max<size_t>::value¶ 
 - 
const size_t 
 
- 
struct 
ConsumerToken¶ Public Functions
- 
template <typename T, typename Traits>
ConsumerToken(ConcurrentQueue<T, Traits> &q)¶ 
- 
template <typename T, typename Traits>
ConsumerToken(BlockingConcurrentQueue<T, Traits> &q)¶ 
- 
ConsumerToken(ConsumerToken &&other)¶ 
- 
ConsumerToken &
operator=(ConsumerToken &&other)¶ 
- 
void 
swap(ConsumerToken &other)¶ 
- 
ConsumerToken(ConsumerToken const&)¶ 
- 
ConsumerToken &
operator=(ConsumerToken const&)¶ 
Private Members
- 
details::ConcurrentQueueProducerTypelessBase *
currentProducer¶ 
- 
details::ConcurrentQueueProducerTypelessBase *
desiredProducer¶ 
Friends
- 
friend 
moodycamel::ConcurrentQueue 
- 
friend 
moodycamel::ConcurrentQueueTests 
- 
template <typename T, typename Traits>
 
- 
struct 
ProducerToken¶ Public Functions
- 
template <typename T, typename Traits>
ProducerToken(ConcurrentQueue<T, Traits> &queue)¶ 
- 
template <typename T, typename Traits>
ProducerToken(BlockingConcurrentQueue<T, Traits> &queue)¶ 
- 
ProducerToken(ProducerToken &&other)¶ 
- 
ProducerToken &
operator=(ProducerToken &&other)¶ 
- 
void 
swap(ProducerToken &other)¶ 
- 
bool 
valid() const¶ 
- 
~ProducerToken()¶ 
- 
ProducerToken(ProducerToken const&)¶ 
- 
ProducerToken &
operator=(ProducerToken const&)¶ 
Protected Attributes
- 
details::ConcurrentQueueProducerTypelessBase *
producer¶ 
Friends
- 
friend 
moodycamel::ConcurrentQueue 
- 
friend 
moodycamel::ConcurrentQueueTests 
- 
template <typename T, typename Traits>
 
- 
namespace 
details¶ - 
Functions
- 
static thread_id_t 
thread_id()¶ 
- 
static bool() moodycamel::details::likely(bool x) 
- 
static bool() moodycamel::details::unlikely(bool x) 
- 
static size_t 
hash_thread_id(thread_id_t id)¶ 
- 
template <typename T>
static boolcircular_less_than(T a, T b)¶ 
- 
template <typename U>
static char *align_for(char *ptr)¶ 
- 
template <typename T>
static Tceil_to_pow_2(T x)¶ 
- 
template <typename T>
static T const &nomove(T const &x)¶ 
- 
template <typename It>
static autoderef_noexcept(It &it)¶ 
- 
template <bool use32>
struct_hash_32_or_64¶ 
- 
template <>
template<>
struct_hash_32_or_64<1>¶ 
- 
struct 
ConcurrentQueueProducerTypelessBase¶ Public Functions
- 
ConcurrentQueueProducerTypelessBase()¶ 
Public Members
- 
ProducerToken *
token¶ 
- 
 
- 
template <typename T>
structconst_numeric_max¶ Public Static Attributes
- 
const T 
value= std::numeric_limits<T>::is_signed
? (static_cast<T>(1) << (sizeof(T) * CHAR_BIT - 1)) - static_cast<T>(1)
: static_cast<T>(-1)
¶ 
- 
const T 
 
- 
union 
max_align_t¶ 
- 
template <bool Enable>
structnomove_if¶ Public Static Functions
- 
template <typename T>
static T const &eval(T const &x)¶ 
- 
template <typename T>
 
- 
template <>
template<>
structnomove_if<false>¶ Public Static Functions
- 
template <typename U>
static autoeval(U &&x)¶ 
- 
template <typename U>
 
- 
template <>
template<>
structstatic_is_lock_free<bool>¶ 
- 
template <typename U>
template<>
structstatic_is_lock_free<U *>¶ Public Types
- 
enum 
[anonymous]¶ Values:
- 
value= ATOMIC_POINTER_LOCK_FREE 
- 
 
- 
enum 
 
- 
template <typename T>
structstatic_is_lock_free_num¶ Public Types
- 
enum 
[anonymous]¶ Values:
- 
value= 0 
- 
 
- 
enum 
 
- 
template <>
template<>
structstatic_is_lock_free_num<int>¶ Public Types
- 
enum 
[anonymous]¶ Values:
- 
value= ATOMIC_INT_LOCK_FREE 
- 
 
- 
enum 
 
- 
template <>
template<>
structstatic_is_lock_free_num<long>¶ Public Types
- 
enum 
[anonymous]¶ Values:
- 
value= ATOMIC_LONG_LOCK_FREE 
- 
 
- 
enum 
 
- 
template <>
template<>
structstatic_is_lock_free_num<long long>¶ Public Types
- 
enum 
[anonymous]¶ Values:
- 
value= ATOMIC_LLONG_LOCK_FREE 
- 
 
- 
enum 
 
- 
template <>
template<>
structstatic_is_lock_free_num<short>¶ Public Types
- 
enum 
[anonymous]¶ Values:
- 
value= ATOMIC_SHORT_LOCK_FREE 
- 
 
- 
enum 
 
- 
template <>
template<>
structstatic_is_lock_free_num<signed char>¶ Public Types
- 
enum 
[anonymous]¶ Values:
- 
value= ATOMIC_CHAR_LOCK_FREE 
- 
 
- 
enum 
 
- 
template <typename thread_id_t>
structthread_id_converter¶ - 
Public Static Functions
- 
static thread_id_hash_t 
prehash(thread_id_t const &x)¶ 
 - 
static thread_id_hash_t 
 
 - 
static thread_id_t 
 
- 
template <typename T, typename Traits>
 
#include <hpx/concurrency/deque.hpp>¶
- 
namespace 
boost¶ - 
namespace 
lockfree¶ - 
- 
template <typename T, typename freelist_t = caching_freelist_t, typename Alloc = std::allocator<T>>
structdeque¶ Public Types
- 
typedef deque_node<T> 
node¶ 
- 
typedef deque_anchor<T> 
anchor¶ 
- 
typedef std::conditional<std::is_same<freelist_t, caching_freelist_t>::value, caching_freelist<node, node_allocator>, static_freelist<node, node_allocator>>::type 
pool¶ 
Public Functions
- 
~deque()¶ 
- 
bool 
empty() const¶ 
- 
bool 
is_lock_free() const¶ 
- 
bool 
push_left(T const &data)¶ 
- 
bool 
push_right(T const &data)¶ 
- 
bool 
pop_left(T &r)¶ 
- 
bool 
pop_left(T *r)¶ 
- 
bool 
pop_right(T &r)¶ 
- 
bool 
pop_right(T *r)¶ 
Private Functions
- 
void 
stabilize_left(anchor_pair &lrs)¶ 
- 
void 
stabilize_right(anchor_pair &lrs)¶ 
- 
void 
stabilize(anchor_pair &lrs)¶ 
- 
typedef deque_node<T> 
 
- 
template <typename T>
structdeque_anchor¶ Public Types
- 
typedef deque_node<T> 
node¶ 
Public Functions
- 
deque_anchor()¶ 
- 
deque_anchor(deque_anchor const &p)¶ 
- 
bool 
cas(deque_anchor &expected, deque_anchor const &desired) volatile¶ 
- 
bool 
cas(pair &expected, deque_anchor const &desired) volatile¶ 
- 
bool 
cas(deque_anchor &expected, pair const &desired) volatile¶ 
- 
bool 
operator==(volatile deque_anchor const &rhs) const¶ 
- 
bool 
operator!=(volatile deque_anchor const &rhs) const¶ 
- 
bool 
is_lock_free() const¶ 
Private Members
- 
atomic_pair 
pair_¶ 
- 
typedef deque_node<T> 
 
- 
template <typename T>
structdeque_node¶ Public Types
- 
typedef detail::tagged_ptr<deque_node> 
pointer¶ 
Public Functions
- 
deque_node()¶ 
- 
deque_node(deque_node const &p)¶ 
- 
deque_node(deque_node *lptr, deque_node *rptr, T const &v, tag_t ltag = 0, tag_t rtag = 0)¶ 
- 
typedef detail::tagged_ptr<deque_node> 
 
 - 
template <typename T, typename freelist_t = caching_freelist_t, typename Alloc = std::allocator<T>>
 
- 
namespace 
 
#include <hpx/concurrency/cache_line_data.hpp>¶
- 
template <typename Data>
template<>
structcache_aligned_data<Data, std::false_type>¶ Public Functions
- 
cache_aligned_data()¶ 
- 
cache_aligned_data(Data &&data)¶ 
- 
cache_aligned_data(Data const &data)¶ 
Public Members
- 
Data 
data_¶ 
- 
 
- 
namespace 
hpx - 
namespace 
threads 
- 
namespace 
util Typedefs
- 
using 
hpx::util::cache_line_data = typedef cache_aligned_data<Data> 
- 
template <typename Data, typename NeedsPadding = typename detail::needs_padding<Data>::type>
structcache_aligned_data¶ 
- 
using 
 
- 
namespace 
 
#include <hpx/concurrency/spinlock_pool.hpp>¶
- 
namespace 
hpx - 
namespace 
util - 
template <typename Tag, std::size_t N = HPX_HAVE_SPINLOCK_POOL_NUM>
classspinlock_pool¶ - 
Private Static Attributes
- 
cache_aligned_data<boost::detail::spinlock> 
pool_¶ 
 - 
cache_aligned_data<boost::detail::spinlock> 
 
- 
template <typename Tag, std::size_t N = HPX_HAVE_SPINLOCK_POOL_NUM>
 
- 
namespace 
 
#include <hpx/concurrency/itt_notify.hpp>¶
Defines
- 
HPX_ITT_SYNC_CREATE(obj, type, name)¶ 
- 
HPX_ITT_SYNC_RENAME(obj, name)¶ 
- 
HPX_ITT_SYNC_PREPARE(obj)¶ 
- 
HPX_ITT_SYNC_CANCEL(obj)¶ 
- 
HPX_ITT_SYNC_ACQUIRED(obj)¶ 
- 
HPX_ITT_SYNC_RELEASING(obj)¶ 
- 
HPX_ITT_SYNC_RELEASED(obj)¶ 
- 
HPX_ITT_SYNC_DESTROY(obj)¶ 
- 
HPX_ITT_STACK_CREATE(ctx)¶ 
- 
HPX_ITT_STACK_CALLEE_ENTER(ctx)¶ 
- 
HPX_ITT_STACK_CALLEE_LEAVE(ctx)¶ 
- 
HPX_ITT_STACK_DESTROY(ctx)¶ 
- 
HPX_ITT_FRAME_BEGIN(frame, id)¶ 
- 
HPX_ITT_FRAME_END(frame, id)¶ 
- 
HPX_ITT_MARK_CREATE(mark, name)¶ 
- 
HPX_ITT_MARK_OFF(mark)¶ 
- 
HPX_ITT_MARK(mark, parameter)¶ 
- 
HPX_ITT_THREAD_SET_NAME(name)¶ 
- 
HPX_ITT_THREAD_IGNORE()¶ 
- 
HPX_ITT_TASK_BEGIN(domain, name)¶ 
- 
HPX_ITT_TASK_BEGIN_ID(domain, id, name)¶ 
- 
HPX_ITT_TASK_END(domain)¶ 
- 
HPX_ITT_DOMAIN_CREATE(name)¶ 
- 
HPX_ITT_STRING_HANDLE_CREATE(name)¶ 
- 
HPX_ITT_MAKE_ID(addr, extra)¶ 
- 
HPX_ITT_ID_CREATE(domain, id)¶ 
- 
HPX_ITT_ID_DESTROY(id)¶ 
- 
HPX_ITT_HEAP_FUNCTION_CREATE(name, domain)¶ 
- 
HPX_ITT_HEAP_ALLOCATE_BEGIN(f, size, initialized)¶ 
- 
HPX_ITT_HEAP_ALLOCATE_END(f, addr, size, initialized)¶ 
- 
HPX_ITT_HEAP_FREE_BEGIN(f, addr)¶ 
- 
HPX_ITT_HEAP_FREE_END(f, addr)¶ 
- 
HPX_ITT_HEAP_REALLOCATE_BEGIN(f, addr, new_size, initialized)¶ 
- 
HPX_ITT_HEAP_REALLOCATE_END(f, addr, new_addr, new_size, initialized)¶ 
- 
HPX_ITT_HEAP_INTERNAL_ACCESS_BEGIN()¶ 
- 
HPX_ITT_HEAP_INTERNAL_ACCESS_END()¶ 
- 
HPX_ITT_COUNTER_CREATE(name, domain)¶ 
- 
HPX_ITT_COUNTER_CREATE_TYPED(name, domain, type)¶ 
- 
HPX_ITT_COUNTER_SET_VALUE(id, value_ptr)¶ 
- 
HPX_ITT_COUNTER_DESTROY(id)¶ 
- 
HPX_ITT_METADATA_ADD(domain, id, key, data)¶ 
Typedefs
- 
typedef void *
__itt_heap_function¶ 
Functions
- 
void 
itt_sync_create(void *, const char *, const char *)¶ 
- 
void 
itt_sync_rename(void *, const char *)¶ 
- 
void 
itt_sync_prepare(void *)¶ 
- 
void 
itt_sync_acquired(void *)¶ 
- 
void 
itt_sync_cancel(void *)¶ 
- 
void 
itt_sync_releasing(void *)¶ 
- 
void 
itt_sync_released(void *)¶ 
- 
void 
itt_sync_destroy(void *)¶ 
- 
___itt_caller *
itt_stack_create()¶ 
- 
void 
itt_stack_enter(___itt_caller *)¶ 
- 
void 
itt_stack_leave(___itt_caller *)¶ 
- 
void 
itt_stack_destroy(___itt_caller *)¶ 
- 
void 
itt_frame_begin(___itt_domain const *, ___itt_id *)¶ 
- 
void 
itt_frame_end(___itt_domain const *, ___itt_id *)¶ 
- 
int 
itt_mark_create(char const *)¶ 
- 
void 
itt_mark_off(int)¶ 
- 
void 
itt_mark(int, char const *)¶ 
- 
void 
itt_thread_set_name(char const *)¶ 
- 
void 
itt_thread_ignore()¶ 
- 
void 
itt_task_begin(___itt_domain const *, ___itt_string_handle *)¶ 
- 
void 
itt_task_begin(___itt_domain const *, ___itt_id *, ___itt_string_handle *)¶ 
- 
void 
itt_task_end(___itt_domain const *)¶ 
- 
___itt_domain *
itt_domain_create(char const *)¶ 
- 
___itt_string_handle *
itt_string_handle_create(char const *)¶ 
- 
___itt_id *
itt_make_id(void *, unsigned long)¶ 
- 
void 
itt_id_create(___itt_domain const *, ___itt_id *)¶ 
- 
void 
itt_id_destroy(___itt_id *)¶ 
- 
__itt_heap_function 
itt_heap_function_create(const char *, const char *)¶ 
- 
void 
itt_heap_allocate_begin(__itt_heap_function, std::size_t, int)¶ 
- 
void 
itt_heap_allocate_end(__itt_heap_function, void **, std::size_t, int)¶ 
- 
void 
itt_heap_free_begin(__itt_heap_function, void *)¶ 
- 
void 
itt_heap_free_end(__itt_heap_function, void *)¶ 
- 
void 
itt_heap_reallocate_begin(__itt_heap_function, void *, std::size_t, int)¶ 
- 
void 
itt_heap_reallocate_end(__itt_heap_function, void *, void **, std::size_t, int)¶ 
- 
void 
itt_heap_internal_access_begin()¶ 
- 
void 
itt_heap_internal_access_end()¶ 
- 
___itt_counter *
itt_counter_create(char const *, char const *)¶ 
- 
___itt_counter *
itt_counter_create_typed(char const *, char const *, int)¶ 
- 
void 
itt_counter_destroy(___itt_counter *)¶ 
- 
void 
itt_counter_set_value(___itt_counter *, void *)¶ 
- 
int 
itt_event_create(char const *, int)¶ 
- 
int 
itt_event_start(int)¶ 
- 
int 
itt_event_end(int)¶ 
- 
void 
itt_metadata_add(___itt_domain *, ___itt_id *, ___itt_string_handle *, double const&)¶ 
- 
void 
itt_metadata_add(___itt_domain *, ___itt_id *, ___itt_string_handle *, char const *)¶ 
- 
void 
itt_metadata_add(___itt_domain *, ___itt_id *, ___itt_string_handle *, void const *)¶ 
- 
namespace 
hpx - 
namespace 
util - 
namespace 
itt¶ - 
- 
struct 
caller_context¶ 
- 
struct 
counter¶ 
- 
struct 
domain¶ Subclassed by hpx::util::itt::thread_domain
- 
struct 
frame_context¶ 
- 
struct 
heap_allocate¶ Public Functions
- 
template <typename T>
heap_allocate(heap_function&, T **, std::size_t, int)¶ 
- 
~heap_allocate()¶ 
- 
template <typename T>
 
- 
struct 
heap_free¶ 
- 
struct 
heap_function¶ 
- 
struct 
heap_internal_access¶ 
- 
struct 
id¶ 
- 
struct 
mark_context¶ 
- 
struct 
mark_event¶ 
- 
struct 
stack_context¶ 
- 
struct 
task¶ Public Functions
- 
task(domain const&, string_handle const&, std::uint64_t)¶ 
- 
task(domain const&, string_handle const&)¶ 
- 
~task()¶ 
- 
 
- 
struct 
undo_frame_context¶ 
- 
struct 
undo_mark_context¶ 
 - 
struct 
 
- 
namespace 
 
- 
namespace