thread_system v1.0.0
First stable release with frozen public API and semantic versioning guarantees.
Highlights
- Stable API: All public headers frozen — no breaking changes until v2.0
- Result<T> Error Handling:
throwreplaced withResult<T>across all public APIs - Queue Consolidation: 10 queue implementations reduced to 2 public types (
adaptive_job_queue,job_queue) - CMake Project Rename:
ThreadSystem→thread_system(breaking change from 0.x)
Added
- vcpkg CMake preset for streamlined builds (#632)
- Tutorials, FAQ, and troubleshooting guide (#661)
- Getting Started guide with categorized examples (#655)
- Architecture Decision Records (ADR) (#648)
- Issue/PR templates, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY (#628)
- Documentation audit CI workflow for PRs (#650)
- Automated vcpkg registry sync on release (#629)
Changed
- BREAKING: Rename CMake project from
ThreadSystemtothread_system(#642) - Replace
throwstatements withResult<T>in all public API headers (#675) - Add deprecation markers for v1.0 API freeze (#676)
- Remove deprecated job classes, resilience headers, and policy methods (#611)
- Standardize license headers to short BSD-3-Clause format (#641)
- Standardize CMake export naming to
thread_system-targets(#588) - Standardize minimum CMake version to 3.20 (#621)
Fixed
- Thread-safe diagnostics initialization with
std::call_once(#669) - vcpkg usage target name mismatch and stale fmt dependency (#664)
hazard_pointermemory ordering issues for lock-free correctness- pkg-config template for unified library (#634)
Performance
- Replace mutex with atomic counter for
job_queueread-only query APIs (#609) - Add exponential backoff to
lockfree_job_queueCAS retry loops (#610) - Lock-free freelist pool for queue node allocation
- Replace 10ms polling sleep with
condition_variableblocking in thread pool
Infrastructure
- Upgrade dependencies: spdlog 1.15.3, gtest 1.17.0, benchmark 1.9.5
- Adopt setup-vcpkg composite action for CI standardization (#622)
Migration from 0.x
See USER_MIGRATION_GUIDE.md for details.
Key changes:
- Update CMake:
find_package(thread_system)(wasThreadSystem) - Update target:
thread_system::thread_system(wasThreadSystem::ThreadSystem) - Replace
throw-based error handling withResult<T>returns - Update FetchContent:
GIT_TAG v1.0.0
Full Changelog: https://github.com/kcenon/thread_system/blob/main/CHANGELOG.md