thread_support

The contents of this module can be included with the header hpx/modules/thread_support.hpp. These headers may be used by user-code but are not guaranteed stable (neither header location nor contents). You are using these at your own risk. If you wish to use non-public functionality from a module we strongly suggest only including the module header hpx/modules/thread_support.hpp, not the particular header in which the functionality you would like to use is defined. See Public API for a list of names that are part of the public HPX API.

Defines

HPX_ASSERT_OWNS_LOCK(l)
HPX_ASSERT_DOESNT_OWN_LOCK(l)
namespace hpx
namespace util
class atomic_count

Public Functions

HPX_NON_COPYABLE(atomic_count)
atomic_count(long value)
atomic_count &operator=(long value)
long operator++()
long operator--()
atomic_count &operator+=(long n)
atomic_count &operator-=(long n)
operator long() const

Private Members

std::atomic<long> value_
namespace hpx
namespace util

Functions

void set_thread_name(char const*)

Defines

HPX_EXPORT_THREAD_SPECIFIC_PTR
namespace hpx
namespace util
template<typename T, typename Tag>
struct thread_specific_ptr

Public Types

typedef T element_type

Public Functions

T *get() const
T *operator->() const
T &operator*() const
void reset(T *new_value = nullptr)

Private Static Attributes

thread_local T *ptr_ = nullptr
namespace hpx
namespace util
template<typename Mutex>
class unlock_guard

Public Types

template<>
using mutex_type = Mutex

Public Functions

HPX_NON_COPYABLE(unlock_guard)
unlock_guard(Mutex &m)
~unlock_guard()

Private Members

Mutex &m_