ATLAS Offline Software
Classes | Namespaces | Typedefs
ConcurrentHashmapImpl.h File Reference

Hash table allowing concurrent, lockless reads. More...

#include "CxxUtils/bitscan.h"
#include "CxxUtils/atomic_fetch_minmax.h"
#include "CxxUtils/concepts.h"
#include <functional>
#include <cstdint>
#include <cstdlib>
#include <atomic>
#include <mutex>
#include <memory>
#include <new>
#include "CxxUtils/ConcurrentHashmapImpl.icc"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  CxxUtils::detail::HashmapLock
 Helper to allow for external locking with put(). More...
 
struct  CxxUtils::detail::CHMTableIterator< ENTRIES_PER_CACHELINE >
 Helper to generate hash probes. More...
 
class  CxxUtils::detail::ConcurrentHashmapImpl< UPDATER_, HASHER_, MATCHER_, NULLVAL_, TOMBSTONE_ >
 Hash table allowing concurrent, lockless reads. More...
 
struct  CxxUtils::detail::ConcurrentHashmapImpl< UPDATER_, HASHER_, MATCHER_, NULLVAL_, TOMBSTONE_ >::entry_t
 One entry in the hash table. More...
 
class  CxxUtils::detail::ConcurrentHashmapImpl< UPDATER_, HASHER_, MATCHER_, NULLVAL_, TOMBSTONE_ >::Table
 Table of hash entries. More...
 
class  CxxUtils::detail::ConcurrentHashmapImpl< UPDATER_, HASHER_, MATCHER_, NULLVAL_, TOMBSTONE_ >::const_iterator
 Bidirectional iterator over occupied table entries. More...
 

Namespaces

 CxxUtils
 
 CxxUtils::detail
 Portable implementations.
 

Typedefs

using CxxUtils::detail::ConcurrentHashmapVal_t = uintptr_t
 Type used for keys and values — an unsigned big enough to hold a pointer. More...
 

Detailed Description

Hash table allowing concurrent, lockless reads.

Author
scott snyder snyde.nosp@m.r@bn.nosp@m.l.gov
Date
Dec, 2020

Definition in file ConcurrentHashmapImpl.h.