xenium
|
A generalized implementation of epoch based reclamation. More...
#include <generic_epoch_based.hpp>
Public Types | |
template<class... Policies> | |
using | with = generic_epoch_based< typename Traits::template with< Policies... > > |
Customize the reclamation scheme with the given policies. More... | |
A generalized implementation of epoch based reclamation.
For general information about the interface of the reclamation scheme see Reclamation scheme interface.
This implementation is parameterized and can be configured in many ways. For example:
For ease of use these aliases are already predefined.
This class does not take a list of policies, but a Traits
type that can be customized with a list of policies. Use the with<>
template alias to pass your custom policies (see the previous examples for epoch_based
, new_epoch_based
and debra
).
The following policies are supported:
xenium::policy::scan_frequency
xenium::policy::scan
all_threads
, one_thread
and n_threads
. (defaults to all_threads
)xenium::policy::abandon
never
, always
and when_exceeds_threshold
. (defaults to never
)xenium::policy::region_extension
region_guard
should have. (defaults to region_extension::eager
)Traits |
using xenium::reclamation::generic_epoch_based< Traits >::with = generic_epoch_based<typename Traits::template with<Policies...> > |
Customize the reclamation scheme with the given policies.
The given policies are applied to the current configuration, replacing previously specified policies of the same type.
The resulting type is the newly configured reclamation scheme.
Policies | list of policies to customize the behaviour |