Releases: vixcpp/threadpool
Releases · vixcpp/threadpool
Release v0.2.0
Full Changelog: v0.1.0...v0.2.0
v0.1.0
Changelog
All notable changes to vix::threadpool will be documented in this file.
This project follows semantic versioning.
v0.1.0
Added
- Added the initial
vix::threadpoolmodule. - Added
ThreadPoolas the main public API for multithreaded task execution. - Added fire-and-forget task submission with
post(). - Added result-producing task submission with
submit(). - Added cancellable task handles with
TaskHandle. - Added
Future,Promise, andSharedStatefor task result propagation. - Added support for
voidand value-returning tasks. - Added task lifecycle tracking with
TaskStatus. - Added task result tracking with
TaskResult. - Added task priorities with
TaskPriority. - Added task options with
TaskOptions. - Added task identifiers with
TaskId. - Added worker identifiers with
WorkerId. - Added cancellation support with
CancellationTokenandCancellationSource. - Added timeout support with
Timeout. - Added deadline support with
Deadline. - Added threadpool error codes with
ThreadPoolErrc. - Added threadpool configuration with
ThreadPoolConfig. - Added live metrics with
ThreadPoolMetrics. - Added cumulative stats with
ThreadPoolStats. - Added internal task queue support with
TaskQueue. - Added task ordering with
TaskCmp. - Added task activity tracking with
TaskGuard. - Added worker lifecycle types with
Worker,WorkerThread, andWorkerState. - Added worker-local helpers in
this_worker.hpp. - Added scheduling policies with
SchedulingPolicy. - Added queue policies with
QueuePolicy. - Added rejection policies with
RejectionPolicy. - Added
Schedulerfor distributing work across workers. - Added executor abstraction with
Executor. - Added
ExecutorReffor non-owning executor access. - Added
InlineExecutorfor deterministic inline execution. - Added
ThreadPoolExecutorfor adaptingThreadPoolto the executor interface. - Added
TaskGroupfor manual task coordination. - Added
Scopefor structured concurrency. - Added
PeriodicTaskfor repeated scheduled submissions. - Added
Latchas a one-shot synchronization primitive. - Added
Barrieras a reusable synchronization primitive. - Added
parallel_forfor index-based parallel loops. - Added
parallel_for_eachfor container and iterator-range processing. - Added
parallel_mapfor ordered parallel transformations. - Added
parallel_reducefor parallel aggregation. - Added
parallel_pipelinefor running independent stages concurrently. - Added
parallelnamespace helpers. - Added detail utilities:
AtomicCounterFunctionTraitsInvokeLockUtilsScopeExitMoveOnlyFunctionThreadNameWaitStrategy
- Added module umbrella header
<vix/threadpool/threadpool.hpp>. - Added module version header
<vix/threadpool/version.hpp>. - Added standalone CMake support with
vix::threadpool. - Added standalone package export support with
vix_threadpoolTargets. - Added Vix umbrella build export support through
VixTargets. - Added CMake presets for development and release builds.
- Added examples for:
- basic task posting
- futures
- priorities
- timeouts
- cancellation
- task groups
- parallel loops
- parallel map
- parallel reduce
- periodic tasks
- metrics
- shutdown
- custom configuration
- Added unit tests for configuration, metrics, queues, priorities, cancellation, timeouts, task groups, workers, executors, thread pool behavior, parallel algorithms, periodic tasks, scopes, shutdown, and stress scenarios.
- Added benchmarks for submission, parallel loops, parallel map, queue contention, and shutdown.
- Added documentation for installation, quick start, concepts, tasks, futures, task groups, cancellation, timeouts, priorities, parallel algorithms, periodic tasks, metrics, shutdown, best practices, and API reference.
Notes
- Cancellation is cooperative.
- Timeouts are observational.
- Priorities affect queued tasks only and do not preempt running work.
- Shutdown is idempotent.
- The public API is designed to stay simple while keeping scheduling, queues, metrics, and worker complexity inside Vix.