libpmemobj-cpp
libpmemobj-cpp copied to clipboard
C++ bindings & containers for libpmemobj
One possible approach is to have singleton class for every persistent object type which would hold hashmap of volatile objects (volatile state) for every persistent one. This would require support...
## Rationale C++14 is now commonly implemented within compilers, so we should consider using it by default, to take advantage of new features. ## Description Update CMake files, readme files,...
# FEAT: Persistent container iterators ## Rationale If we want program execution to be interruptable/restartable, we need to keep track of work in progress or be able to start from...
As seen e.g. in pmemkv (1.4+) build: ``` /usr/bin/ld: CMakeFiles/pmemkv.dir/src/engines-experimental/radix.cc.o: in function `pmem::detail::ebr::ebr()': /usr/include/libpmemobj++/detail/ebr.hpp:121: multiple definition of `pmem::detail::ebr::ebr()'; CMakeFiles/pmemkv.dir/src/engine.cc.o:/usr/include/libpmemobj++/detail/ebr.hpp:121: first defined here /usr/bin/ld: CMakeFiles/pmemkv.dir/src/engines-experimental/radix.cc.o: in function `pmem::detail::ebr::ebr()': /usr/include/libpmemobj++/detail/ebr.hpp:121: multiple definition...
These files get created inside the source tree: ``` tests/concurrent_hash_map_rehash_break/concurrent_hash_map_rehash_break_0.cmake tests/concurrent_hash_map_rehash_break/concurrent_hash_map_rehash_break_1.cmake ```
As soon as https://github.com/pmem/pmdk/issues/5347 is fixed, we should update pmreorder tests for atomic persistent-aware ptr (implemented in https://github.com/pmem/libpmemobj-cpp/pull/1217) to use FullReorder engine. Perhaps there are other tests that may gain...
Dear all, It has been a long time since we talked earlier. I create this PR as the kick-start to discuss with you about how we can contribute to this...
# DOC: Extend documentation for self_relative_ptr ## Description It would be good to add some info about limitations of self_relative_ptr (here and in the self_relative_ptr section if there is no...
Increase cmake minimum version to cmake >= 3.18 ## Rationale Since 3.18 Cmake supports `REQUIRED` parameter in `find_program()`, which would simplify cmake files in many places all over codebase. instead...
libpmemobj allows using `NULL` as a proper layout for pool create/open. In libpmemobj-cpp, when we provide `nullptr` as layout` we get (at runtime): ``` basic_string::_M_construct null not valid ``` I...