Conversation
- Introduced breaking changes including type aliases for `ThreadPool` and `FastThreadPool`, updated return types for thread configuration methods, and removal of `submit_range()`. - Added new types such as `ThreadPoolBase<WaitPolicy>` and `GlobalPool<PoolType>`. - Centralized OS-level logic for thread priority, scheduling, and affinity into detail functions, reducing code duplication by ~1000 lines. - Refactored `apply_profile()` methods for better consistency and clarity across thread types. - Updated `VERSION` to 2.0.0.
…bility - Centralized thread configuration methods in `detail` namespace, reducing code duplication and enhancing clarity. - Removed the `FutureWithErrorHandler<void>` specialization, streamlining the handling of void futures. - Deduplicated thread naming and affinity methods across various classes, improving consistency. - Introduced a new `QueryFacadeMixin` for `CompositeThreadRegistry`, simplifying query operations. - Updated CHANGELOG to reflect internal improvements and code reductions across multiple files.
…d maintainability - Consolidated `ThreadRegistry` methods to inherit from `detail::QueryFacadeMixin`, reducing code duplication in query operations. - Streamlined POSIX scheduling helpers by merging `apply_priority` and `apply_scheduling_policy` into a shared implementation. - Simplified error handling in `PoolWithErrors` by introducing a new static factory method `TaskError::capture()` to centralize exception capturing. - Reduced duplicated logic in `ThreadRegistry::register_current_thread` by delegating to a private `try_register` method. - Updated CHANGELOG to reflect these enhancements and code reductions across multiple files.
- Introduced quality-of-life improvements including stable callback management in `ErrorHandler` with `remove_callback(id)` and `has_callback(id)` methods. - Added non-throwing submission methods `try_submit()` and `try_submit_batch()` for all pool types, returning `expected<std::future<T>, std::error_code>`. - Implemented chunked work distribution in `parallel_for_each` for better performance across thread pools. - Configured `HighPerformancePool` with adjustable deque capacity and pre-configuration of thread count via `GlobalPool::init(n)`. - Added C++20 ranges overloads for batch submissions and parallel processing. - Introduced cooperative cancellation support with `submit(stop_token, F, Args...)` overloads. - Added new future combinators in `futures.hpp` for enhanced future management. - Updated CHANGELOG to reflect these new features and improvements.
- Added `LightweightPoolT<TaskSize>` for ultra-lightweight fire-and-forget task execution with zero heap allocations for typical lambdas. - Implemented `post()` and `try_post()` methods for fire-and-forget submissions across all pool types, reducing overhead. - Updated `ScheduledThreadPoolT` to utilize `post()` internally, eliminating unnecessary future allocations. - Introduced new types: `LightweightPool`, `ScheduledLightweightPool`, and `detail::SboCallable<TaskSize>` for improved callable management. - Updated CHANGELOG to reflect these new features and enhancements.
…ithout default initialization. Added missing include for <cstddef> to support size-related definitions.
- Added new benchmarks for `LightweightPool` to evaluate performance in fire-and-forget scenarios, including minimal tasks, light tasks, and batch posting. - Updated `run_benchmarks.sh` to include guidance on using `LightweightPool` for low-overhead task execution. - Modified `CMakeLists.txt` to conditionally link the performance benchmark with Google Benchmark. - Refactored `performance_benchmark.cpp` to streamline task submission and improve clarity in benchmark results. - Updated CHANGELOG to reflect the addition of `LightweightPool` benchmarks and related enhancements.
- Expanded the documentation for `SboCallable` to clarify its design, storage layout, inline eligibility, move semantics, and thread safety. - Added detailed descriptions for `ShutdownPolicy` to outline shutdown behavior options. - Improved method documentation in `HighPerformancePool`, including `try_submit`, `submit`, `post`, and batch submission methods, emphasizing error handling and performance benefits. - Introduced C++20 ranges overloads and observers for better usability and clarity in task management.
- Added a comprehensive migration guide in `docs/MIGRATION_V2.md` detailing breaking changes, upgrade steps, and optional improvements for transitioning from v1.x to v2.0. - Expanded the `CHANGELOG.md` to include a full list of changes and new features in v2.0, emphasizing lower-overhead submission and improved ergonomics. - Updated `README.md` to highlight new features in v2.0 and link to the migration guide for user convenience. - Enhanced documentation in `README-DOCS.md` to include references to the migration guide and other relevant resources.
- Refined the presentation of quality-of-life features, ensuring consistent formatting and clearer descriptions. - Enhanced the documentation of new types and internal improvements, emphasizing usability and performance benefits. - Consolidated related changes for better readability and understanding of enhancements in the thread pool and error handling functionalities.
- Finalized the CHANGELOG to mark the release of v2.0.0, including breaking changes and new features. - Updated Doxyfile to enable warnings for undocumented elements, enhancing code documentation quality. - Improved links in README.md and migration guide for better accessibility to CHANGELOG and upgrade instructions. - Clarified documentation in futures.hpp and scheduled_pool.hpp to ensure consistent use of code formatting for better readability.
…bility and extraction - Changed Doxyfile to enable extraction of all documentation elements, enhancing the quality of generated documentation. - Updated links in README.md and migration guide to use HTML anchor tags for better accessibility to CHANGELOG and upgrade instructions.
- Added `schedule_on{pool}` and `run_on(pool, fn)` to the coroutine documentation, detailing their usage and behavior with thread pools.
- Updated descriptions for `task<T>`, `sync_wait`, and `generator<T>` for consistency and clarity.
- Improved overall formatting and readability of the documentation to better guide users in utilizing coroutine features.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ThreadPoolandFastThreadPool, updated return types for thread configuration methods, and removal ofsubmit_range().ThreadPoolBase<WaitPolicy>andGlobalPool<PoolType>.apply_profile()methods for better consistency and clarity across thread types.VERSIONto 2.0.0.