Commit Graph

347 Commits

Author SHA1 Message Date
Gregory Popovitch def20389e8 Fix warnings with clang-20/-Wconversion (#282) 2025-08-16 08:19:23 -05:00
greg7mdp c29681a777 Use UniqueLock in extract() instead of SharedLock. issue #280. 2025-08-06 10:07:58 -04:00
greg7mdp b56fe781f1 Merge branch 'master' of github.com:greg7mdp/parallel-hashmap 2025-08-04 11:04:14 -04:00
greg7mdp ea305283f3 Tentative fix for issue #280. 2025-08-04 11:02:46 -04:00
Wang Han 0cd57d29a9 Fix cstdlib include in phmap (#278) 2025-06-05 11:31:19 -05:00
Gregory Popovitch 896f1a03e4 Define umul128 in phmap namespace. (#273) 2025-04-11 10:24:44 -04:00
Gregory Popovitch 40780b29bd Fix warnings when using absl::Mutex (#272) 2025-04-11 10:16:33 -04:00
greg7mdp 154c63489e Mostly revert "Small performance optimizations." 2025-02-09 09:40:04 -05:00
greg7mdp 2b6ef17a53 Small performace optimizations 2025-02-08 20:17:02 -05:00
greg7mdp 2ec7990176 Update version number to 2.0.0 2025-01-21 10:50:42 -05:00
tang donghai f358021bcc Enhance the flexibility of the BinaryOutputArchive and BinaryInputArchive (#267)
* Refactor BinaryOutputArchive and BinaryInputArchive to use std::ostream and std::istream, allowing for more flexible output/input stream handling

* update code based one the review comment

* format code
2025-01-18 23:10:11 -05:00
greg7mdp 640aef361d Fix issue with std::pmr::polymorphic_allocator 2024-12-14 19:14:37 -05:00
Gregory Popovitch a6ce0835ca Add preprocessor macro PHMAP_DISABLE_MIX (#259)
* Add preporcessor define to disable mixing (`PHMAP_DISABLE_MIX`).

* Update `README.md`.
2024-11-02 18:06:56 -04:00
Gregory Popovitch debe606647 Add support for custom pointers. (#258)
* Add support for custom pointers.

* Add comment

* lowercase `OpenMP` in `CMakeLists.txt`
2024-11-02 17:48:08 -04:00
greg7mdp 2d0b499273 Fix msvc warning 2024-10-30 08:18:42 -04:00
greg7mdp 22a7f6ca72 Update version to 1.4.1 2024-10-27 23:45:18 -04:00
greg7mdp c9520f1867 Fix issue #255 - Incorrect concurrent increment of value with std::shared_mutex. 2024-10-27 20:39:38 -04:00
Gregory Popovitch 4817a6d3b8 Allocate empty group on heap only for std::allocator (#254)
* Allocate empty group on heap only for `std::allocator`

* Add missing assert,
2024-10-19 18:43:55 -04:00
Gregory Popovitch feb600c4e7 Support loading pre-1.3.12 phmap_dump files. (#251) 2024-10-05 17:54:30 -04:00
greg7mdp be87c4139e Update version to 1.4.0 2024-09-20 17:18:43 -04:00
greg7mdp 8a889d3699 Merge branch 'master' of github.com:greg7mdp/parallel-hashmap 2024-07-04 14:39:28 -04:00
greg7mdp b47d143e1a Rename poorly named get_inner_m. 2024-07-04 14:38:00 -04:00
greg7mdp ef10614217 Add get_inner_m 2024-06-30 11:17:42 -04:00
scivision e5b892baed Correct CMake script. Improve C++ language feature selection (#243)
* cmake: correct minimum version

the previous script would fail with CMake < 3.13 anyway.

* cmake: canonical way to set C++ options

* ci: use modern CMake syntax

* doc: modern CMake syntax

* most compilers have C++17 fallthrough

* correct logic for [[noreturn]]

---------

Co-authored-by: scivision <scivision@users.noreply.github.com>
2024-06-25 19:58:33 -04:00
greg7mdp 7ef2e73341 Minor changes, mostly formatting and avoiding nvcc warnings. 2024-03-16 16:30:31 -04:00
Ali Ghaffaari 50fa648ae0 Fix nvcc warning about missing return statement (#235) 2024-03-11 18:21:20 -04:00
greg7mdp 67c24619e4 Fix nvcc warnings - issue #229 2024-02-04 10:18:44 -05:00
greg7mdp 65775fa09f Update version to 1.3.12 2024-01-28 23:18:32 -05:00
Gregory Popovitch 946ebad67a Fix warnings with msvc. (#225)
* Fix warnings with msvc.

* Fix more warnings.
2023-12-09 12:23:51 -05:00
greg7mdp d3f0b986bf tentative fix for #224. 2023-12-09 08:59:03 -05:00
Gregory Popovitch 0f0ecf724c implement erase using erase_if_impl (#223) 2023-11-30 10:15:46 -05:00
Gregory Popovitch 4c93cf00f2 Remove the Upgrade lock stuff. (#221)
* Remove the `Upgrade` lock stuff.

* Need to repeat the `find()` if we released the mutex to get a write lock.

* Add a couple `assert`s.
2023-11-29 13:16:09 -05:00
bpmckinnon 7556c955d4 Add access to the slot in the lazy constructor. There is a specific use case where I want to cache a pointer to the newly created lazy object. If the capacity of the map does not change between the first and second call of my function, then I use the pointer instead of repeating the lookup. (#219)
Fixed an initialization order issue in ReadWriteLock

Fix the return value of lazy_emplace and lazy_emplace_with_hash.
2023-11-29 09:15:02 -05:00
greg7mdp 9248dcf07e Add support for Windows phmap::srwlock 2023-11-19 18:14:48 -05:00
greg7mdp d51c761733 Reduce verbosity with using directives. 2023-11-19 17:38:36 -05:00
Gregory Popovitch 4d7b07f526 Support ReadWriteLocks in more parallel map APIs. (#217) 2023-11-19 15:57:03 -05:00
greg7mdp 2ee44550e1 Whitespace changes (cleanup) 2023-11-18 23:29:47 -05:00
greg7mdp ff7bd78206 Take care of the case where another thread inserts the same key between unlock()/lock() 2023-11-13 09:48:49 -05:00
greg7mdp 21f14d7a8e Add support for read/write locks 2023-11-12 18:50:18 -05:00
Brian McKinnon 749a283bf3 Optimization for parallel hash map erase_if function. Deals only with inner set iterators to avoid overhead of using parallel map iterators.
Silence a constexpr warning in allocator test
2023-10-19 13:26:47 -05:00
greg7mdp 9f52b30958 Fix incorrect constant in reserve. 2023-10-09 17:24:06 -04:00
Gregory Popovitch 0412b85b08 Static cast to float after division. 2023-10-01 17:24:20 -04:00
Jendrik Seipp b0f117d58e Allow compiling with -Wfloat-conversion 2023-10-01 23:05:30 +02:00
greg7mdp a7909d547c Unused variable warning (issue #208) and remove c++17 dependency. 2023-09-29 10:36:21 -04:00
Ed Catmur 4468822524 Add try_emplace_p extension method
Iterators are invalidated by concurrent insertion (rehash, resize, etc...) whereas for node-based containers, pointers are only invalidated by erase/clear.
2023-09-12 00:31:30 +01:00
greg7mdp 3362017f22 Fix issue with my previous change for issue #205 2023-09-03 23:48:09 -04:00
greg7mdp 38ded9bba8 Simplify clear() and avoid iterating when values have trivial destructor.
Resolves #205.
2023-09-02 14:47:18 -04:00
Ed Catmur 2ac0518a81 Fix C++17 detection for clang
Clang (even recent, e.g. llvm 16) sets __GNUC__ to 4, so the check for C++17 fails.

This results in the check for invoke_result_t in phmap_base.h failing, so it uses std::result_of, which is removed entirely in recent libc++, breaking the build.
2023-06-28 14:30:07 -05:00
greg7mdp f67dadd00a Fix compilation errors with gcc 4.8.5
Thanks to @aengusjiang for the initial PR, which I updated to simplify and fix compilation issues on windows.
2023-06-25 14:48:33 -04:00
greg7mdp 292c29dd9d Cleanup some compilation warnings with old gcc compiler. 2023-06-25 14:48:00 -04:00