Wildmeshing Toolkit
Loading...
Searching...
No Matches
Classes | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
wmtk::ExecutePass< AppMesh >::QueuedCount Class Reference

Classes

struct  Stripe
 

Public Member Functions

void add (const uint64_t key)
 
bool remove (const uint64_t key)
 False if key was not counted.
 
bool contains (const uint64_t key) const
 
size_t size () const
 Keys still counted. Only while no thread is queueing or finishing elements.
 
void clear ()
 Only while no thread is queueing or finishing elements.
 

Private Member Functions

Stripe & stripe (const uint64_t key) const
 

Private Attributes

std::unique_ptr< Stripe[]> m_stripes = std::make_unique<Stripe[]>(n_stripes)
 

Static Private Attributes

static constexpr size_t n_stripes = 1024
 

Detailed Description

template<class AppMesh>
class wmtk::ExecutePass< AppMesh >::QueuedCount

The count behind is_queued(): per key, the queued elements not yet tried or dropped. Striped, so threads queueing and finishing elements of different keys rarely meet on a lock; a single mutex (threading::concurrent_map) would be taken by every thread for every queued split.


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