PMDK C++ bindings  1.13.0-git107.g7e59f08f
This is the C++ bindings documentation for PMDK's libpmemobj.
concurrent_skip_list_impl.hpp File Reference

Persistent memory aware implementation of the concurrent skip list. More...

#include <algorithm>
#include <array>
#include <atomic>
#include <cstdlib>
#include <limits>
#include <mutex>
#include <random>
#include <type_traits>
#include <libpmemobj++/detail/common.hpp>
#include <libpmemobj++/detail/enumerable_thread_specific.hpp>
#include <libpmemobj++/detail/life.hpp>
#include <libpmemobj++/detail/pair.hpp>
#include <libpmemobj++/detail/template_helpers.hpp>
#include <libpmemobj++/mutex.hpp>
#include <libpmemobj++/persistent_ptr.hpp>
#include <libpmemobj++/pool.hpp>
#include <libpmemobj++/transaction.hpp>
#include <libpmemobj++/experimental/atomic_self_relative_ptr.hpp>
#include <libpmemobj++/experimental/self_relative_ptr.hpp>
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  pmem::detail::concurrent_skip_list< Traits >
 Persistent memory aware implementation of the concurrent skip list. More...
 

Namespaces

 pmem
 Persistent memory namespace.
 
 pmem::detail
 Implementation details.
 

Functions

void pmem::detail::try_insert_node_finish_marker ()
 
template<typename MyAlloc , typename OtherAlloc >
void pmem::detail::allocator_copy_assignment (MyAlloc &my_allocator, OtherAlloc &other_allocator, std::true_type)
 Copy assignment implementation for allocator if propagate_on_container_copy_assignment == true_type.
 
template<typename MyAlloc , typename OtherAlloc >
void pmem::detail::allocator_copy_assignment (MyAlloc &, OtherAlloc &, std::false_type)
 Copy assignment implementation for allocator if propagate_on_container_copy_assignment == false_type.
 
template<typename MyAlloc , typename OtherAlloc >
void pmem::detail::allocator_move_assignment (MyAlloc &my_allocator, OtherAlloc &other_allocator, std::true_type)
 Move assignment implementation for allocator if propagate_on_container_move_assignment == true_type.
 
template<typename MyAlloc , typename OtherAlloc >
void pmem::detail::allocator_move_assignment (MyAlloc &, OtherAlloc &, std::false_type)
 Move assignment implementation for allocator if propagate_on_container_move_assignment == false_type.
 
template<typename MyAlloc , typename OtherAlloc >
void pmem::detail::allocator_swap (MyAlloc &my_allocator, OtherAlloc &other_allocator, std::true_type)
 Swap implementation for allocators if propagate_on_container_swap == true_type.
 
template<typename MyAlloc , typename OtherAlloc >
void pmem::detail::allocator_swap (MyAlloc &, OtherAlloc &, std::false_type)
 Swap implementation for allocators if propagate_on_container_swap == false_type.
 
template<typename T , bool M, bool U>
bool pmem::detail::operator== (const skip_list_iterator< T, M > &lhs, const skip_list_iterator< T, U > &rhs)
 
template<typename T , bool M, bool U>
bool pmem::detail::operator!= (const skip_list_iterator< T, M > &lhs, const skip_list_iterator< T, U > &rhs)
 

Detailed Description

Persistent memory aware implementation of the concurrent skip list.