|
struct | std::hash< pmem::obj::p< T > > |
| Specialization of std::hash for p<T> More...
|
|
class | pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > |
| Persistent memory aware implementation of Intel TBB concurrent_hash_map More...
|
|
class | pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >::bucket_accessor |
| Bucket accessor is to find, rehash, acquire a lock, and access a bucket. More...
|
|
class | pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >::serial_bucket_accessor |
| Serial bucket accessor used to access bucket in a serial operations. More...
|
|
class | pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >::const_accessor |
| Combines data access, locking, and garbage collection. More...
|
|
class | pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >::accessor |
| Allows write access to elements and combines data access, locking, and garbage collection. More...
|
|
class | pmem::obj::concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType >::mutex_vector |
| Vector of locks to be unlocked at the destruction time. More...
|
|
|
template<typename ScopedLockType > |
using | pmem::obj::concurrent_hash_map_internal::scoped_lock_upgrade_to_writer = decltype(std::declval< ScopedLockType >().upgrade_to_writer()) |
|
template<typename ScopedLockType > |
using | pmem::obj::concurrent_hash_map_internal::scoped_lock_has_upgrade_to_writer = detail::supports< ScopedLockType, scoped_lock_upgrade_to_writer > |
|
template<typename ScopedLockType > |
using | pmem::obj::concurrent_hash_map_internal::scoped_lock_downgrade_to_reader = decltype(std::declval< ScopedLockType >().downgrade_to_reader()) |
|
template<typename ScopedLockType > |
using | pmem::obj::concurrent_hash_map_internal::scoped_lock_has_downgrade_to_reader = detail::supports< ScopedLockType, scoped_lock_downgrade_to_reader > |
|
|
template<typename Key , typename T , typename Hash , typename KeyEqual , typename MutexType , typename ScopedLockType > |
bool | pmem::obj::operator== (const concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &a, const concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &b) |
|
template<typename Key , typename T , typename Hash , typename KeyEqual , typename MutexType , typename ScopedLockType > |
bool | pmem::obj::operator!= (const concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &a, const concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &b) |
|
template<typename Key , typename T , typename Hash , typename KeyEqual , typename MutexType , typename ScopedLockType > |
void | pmem::obj::swap (concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &a, concurrent_hash_map< Key, T, Hash, KeyEqual, MutexType, ScopedLockType > &b) |
|
A persistent version of concurrent hash map implementation Ref: https://arxiv.org/abs/1509.02235.