![]() |
ATLAS Offline Software
|
Portable implementations. More...
Classes | |
struct | CHMTableIterator |
Helper to generate hash probes. More... | |
class | ConcurrentHashmapImpl |
Hash table allowing concurrent, lockless reads. More... | |
class | HashmapLock |
Helper to allow for external locking with put(). More... | |
struct | SizedUInt |
struct | SizedUInt< 1 > |
struct | SizedUInt< 2 > |
struct | SizedUInt< 4 > |
struct | SizedUInt< 8 > |
union | UIntConv |
Helpers for converting between uintptr_t and a pointer or integer. More... | |
union | UIntConv< uintptr_t > |
Typedefs | |
using | ConcurrentHashmapVal_t = uintptr_t |
Type used for keys and values — an unsigned big enough to hold a pointer. More... | |
Functions | |
template<typename T > | |
constexpr unsigned | ctz_portable (T x) |
template<typename T > | |
constexpr unsigned | clz_portable (T x) |
template<typename T > | |
constexpr unsigned | popcount_portable (T x) |
Portable implementations.
These could be replaced by faster algorithms if needed
using CxxUtils::detail::ConcurrentHashmapVal_t = typedef uintptr_t |
Type used for keys and values — an unsigned big enough to hold a pointer.
Need to have this defined outside of ConcurrentHashmapImpl itself in order to avoid instantiation circularities, as the HASHER_ and MATCHER_ classes will probably want to use it.
Definition at line 41 of file ConcurrentHashmapImpl.h.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |