- Oct 02, 2019
-
-
Szymon Romik authored
test_package and test_findLIBPMEMOBJ_cmake runs use libpmemobj 1.4
-
Szymon Romik authored
-
Szymon Romik authored
Remove unnecessary #include <libpmemobj.h>
-
Szymon Romik authored
Node std layout
-
Igor Chorążewicz authored
remove TTB info from README
-
Igor Chorazewicz authored
-
Igor Chorążewicz authored
Update appveyor to use PMDK v1.7
-
- Oct 01, 2019
-
-
Lukasz Dorau authored
-
Szymon Romik authored
concurrent_hash_map: introduce internal scoped_lock_traits
-
Szymon Romik authored
it is outdated and redundant
-
Pawel Karczewski authored
-
Pawel Karczewski authored
To achieve that classes node and hash_map_node_base was merged into one class hash_map_node.
-
Igor Chorazewicz authored
to generically implement upgrade/downgrade operations. If scoped_lock_type implements upgrade_to_writer and downgrade_to_reader then traits class will just call those methods, otherwise it will provide default implementation.
-
Szymon Romik authored
Fix persistent_pool_ptr swap() method signature
-
Szymon Romik authored
Do not allow concurrent_hash_map concurrent methods in a transaction
-
Igor Chorazewicz authored
to make sure it is consistent in singlethreaded methods like clear() and assignment operators in case of transaction abort.
-
Igor Chorazewicz authored
-
Igor Chorazewicz authored
-
Igor Chorazewicz authored
All methods that take locks on bucket/elements MUST NOT be called in a transaction. If this was allowed, transaction could abort after releasing locks and values would be modified without holding a lock.
-
Szymon Romik authored
Hashmap code cleanup
-
Szymon Romik authored
concurrent_hash_map: introduce version field and add reserved space
-
- Sep 30, 2019
-
-
Szymon Romik authored
Fix array move assignment operator
-
Igor Chorążewicz authored
conditional_add_to_tx can throw an exception which means swap() should not be noexcept.
-
Igor Chorazewicz authored
to make sure that data was create using the same (or compatible) version of concurrent_hash_map.
-
Igor Chorazewicz authored
-
Igor Chorazewicz authored
Also change order of some members so that embedded_segment (which size is dependent on size of the mutexes used is at the end). This allows to have segment_enable_mutex aligned to cacheline.
-
Igor Chorazewicz authored
* Expect bucket bucket to be already locked inside get_node(). * Move logic for restarting search after mask race to internal_find/insert.
-
Igor Chorążewicz authored
explaining that it does not add moved-from array to the transaction. Also add test for move ctor.
-
Igor Chorążewicz authored
Until now, move assignment for array performed copy instead of move. Fix this issue and add test for move assignemt.
-
Igor Chorążewicz authored
Update doxygen files
-
- Sep 26, 2019
-
-
Łukasz Stolarczuk authored
-
Łukasz Stolarczuk authored
-
Igor Chorazewicz authored
This function should only be called after modification (only in internal_insert).
-
- Sep 25, 2019
-
-
Igor Chorążewicz authored
concurrent_hash_map: pass reference to bucket instead of pointer in get_node
-
Igor Chorazewicz authored
Copied from pmem/pmdk.
-
Igor Chorazewicz authored
Using uint64_t removes padding.
-
Igor Chorazewicz authored
get_node() expects pointer to bucket_accessor to always be set, so it's safer to use reference.
-
Igor Chorążewicz authored
concurrent_hash_map: remove wrong assert in get_node method
-
Szymon Romik authored
Template locks
-
- Sep 24, 2019
-
-
Pawel Karczewski authored
Change lock implementation in hashmap to use templates instead of compile time parameter. Changes are related to pretty complicated c++ syntax for template derived class using a member it inherits from its template base class. Coding convention is: * To get types defined in base class in derived class using name_of_type = typename base_class::name_of_type * To get access to methods defined in base class using base_class:method_name * To get access to fields defined in base class this->field_name As hash_map_node_base is now template, it's impossible to determine type of empty_bucket defined in way it was until now - so now it's removed. IMHO checking if node is nullptr is cleaner than comparing it to empty_bucket(which is nullptr anyway)
-