Skip to content

Update CHANGELOG for v2.0.0 with breaking changes and new features#45

Draft
Katze719 wants to merge 13 commits intomainfrom
v2.x
Draft

Update CHANGELOG for v2.0.0 with breaking changes and new features#45
Katze719 wants to merge 13 commits intomainfrom
v2.x

Conversation

@Katze719
Copy link
Copy Markdown
Owner

@Katze719 Katze719 commented Apr 5, 2026

  • 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.

Katze719 added 13 commits April 5, 2026 14:16
- 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant