Skip to content

Releases: kcenon/thread_system

v1.0.0: Stable API Release

15 Apr 23:06
6dd5c9e

Choose a tag to compare

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: throw replaced with Result<T> across all public APIs
  • Queue Consolidation: 10 queue implementations reduced to 2 public types (adaptive_job_queue, job_queue)
  • CMake Project Rename: ThreadSystemthread_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 ThreadSystem to thread_system (#642)
  • Replace throw statements with Result<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_pointer memory ordering issues for lock-free correctness
  • pkg-config template for unified library (#634)

Performance

  • Replace mutex with atomic counter for job_queue read-only query APIs (#609)
  • Add exponential backoff to lockfree_job_queue CAS retry loops (#610)
  • Lock-free freelist pool for queue node allocation
  • Replace 10ms polling sleep with condition_variable blocking 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:

  1. Update CMake: find_package(thread_system) (was ThreadSystem)
  2. Update target: thread_system::thread_system (was ThreadSystem::ThreadSystem)
  3. Replace throw-based error handling with Result<T> returns
  4. Update FetchContent: GIT_TAG v1.0.0

Full Changelog: https://github.com/kcenon/thread_system/blob/main/CHANGELOG.md

v0.3.2

07 Apr 12:41

Choose a tag to compare

Changes

  • fix(vcpkg): correct usage target name and remove stale fmt dependency (#664)
    • Updated vcpkg usage file to reference correct target thread_system::thread_system
    • Removed stale find_dependency(fmt) from CMake config template (std::format migration complete)

v0.3.1

17 Mar 17:09

Choose a tag to compare

Changes since v0.3.0

Bug Fixes

  • fix(ci): pin osv-scanner-action to v2.3.3 and grant contents:write for docs (#573)
  • fix(cmake): lower MINIMUM_SUPPORTED_VERSION and add missing vcpkg dependency (#577)

Documentation

  • docs: improve Doxyfile configuration and fix comment gaps (#575)
  • docs: replace GIT_TAG main with v0.3.0 in FetchContent examples (#578)

Maintenance

  • chore(release): bump version to 0.3.1

Closes #589

v0.3.0

11 Mar 10:28

Choose a tag to compare

What's Changed

  • docs: documentation overhaul (English unification; clarify no official releases; consolidate CHANGELOG milestones) by @kcenon in #11
  • docs: Comprehensive documentation update for streamlined ~2,700 line architecture by @kcenon in #12
  • ci: Enable vcpkg binary caching with GitHub Actions cache by @kcenon in #13
  • feat: Phase 1 Interface Separation - Dependency Improvement Implementation by @kcenon in #14
  • Phase 2: CMake System Standardization - Dependency Improvement by @kcenon in #15
  • Phase 3: Dependency Version Management - Complete Conflict Prevention System by @kcenon in #16
  • feat: Modernize thread system architecture with event bus and configuration management by @kcenon in #18
  • fix: resolve namespace consistency and test compilation issues by @kcenon in #19
  • Fix build compilation errors and MPMC queue hangs by @kcenon in #20
  • Improve thread system architecture and namespace compatibility by @kcenon in #21
  • feat: add common_system integration adapters by @kcenon in #22
  • refactor: standardize build flag naming to BUILD_WITH_COMMON_SYSTEM by @kcenon in #23
  • Add common_system executor interface adapters by @kcenon in #24
  • Align dependency versions with unified configuration by @kcenon in #25
  • Phase 1: Build Configuration Standardization by @kcenon in #26
  • Phase 2: Interface Unification (Logger & Executor) by @kcenon in #27
  • feat(phase2): deprecate monitoring interface types (Task 2.3) by @kcenon in #28
  • feat(phase2): Migrate interfaces to Result pattern by @kcenon in #29
  • Phase 3: Remove bidirectional adapters by @kcenon in #30
  • feat(phase3): Migrate adapters to typed_adapter base class (Task 3.2) by @kcenon in #31
  • refactor(build): simplify CMake configuration (955 → 167 lines) by @kcenon in #32
  • docs(phase3): add API documentation configuration by @kcenon in #33
  • Phase 0: Foundation and Tooling Setup by @kcenon in #34
  • Phase 0: Foundation and Tooling Setup by @kcenon in #35
  • feat: Phase 0 - Foundation and Tooling Setup by @kcenon in #36
  • Phase 0 Completion: Add Baseline Performance Metrics Documentation by @kcenon in #37
  • Phase 1: Thread Safety Verification and Fixes for thread_system by @kcenon in #38
  • test: add comprehensive thread safety tests by @kcenon in #39
  • Phase 2: Resource Management Review - Reference Implementation by @kcenon in #40
  • Phase 3: Error Handling Preparation Documentation by @kcenon in #41
  • docs(phase0): Complete Phase 0 baseline metrics - 1.24M jobs/sec by @kcenon in #42
  • docs(phase3): Update README with architecture improvement phase status by @kcenon in #43
  • Phase 3: Error Handling - Document Result Implementation Completion by @kcenon in #44
  • docs: finalize Phase 3 completion status by @kcenon in #45
  • docs(phase3): Document Phase 3 completion status by @kcenon in #46
  • feat: Phase 5 - Integration Testing Suite by @kcenon in #47
  • feat: implement job-aware common executor adapter and normalize licenses by @kcenon in #48
  • feat: add production-ready queue management and job cancellation by @kcenon in #49
  • Fix: Add Retry Limit to CAS Loop in bounded_job_queue by @kcenon in #50
  • feat(thread_system): Add structured logging infrastructure for better diagnostics by @kcenon in #51
  • fix: respect global BUILD_INTEGRATION_TESTS flag by @kcenon in #52
  • Refactor: Add support for centralized common_system in Sources directory by @kcenon in #53
  • Add comprehensive integration documentation by @kcenon in #54
  • Add comprehensive documentation (ARCHITECTURE, MIGRATION) by @kcenon in #55
  • Migrate from error() to make_error() API by @kcenon in #56
  • Modernize header guards to pragma once by @kcenon in #57
  • feat(typed_pool): complete typed_thread_pool implementation by @kcenon in #58
  • fix(thread_pool): resolve race conditions in stop mechanism by @kcenon in #59
  • fix(concurrency): resolve race conditions and improve API consistency by @kcenon in #60
  • fix: resolve add_worker/stop race condition and optimize memory orders by @kcenon in #61
  • feat: Add comprehensive job cancellation system by @kcenon in #62
  • Migrate from fmt library to C++20 std::format by @kcenon in #63
  • feat: Add CI/CD Performance Metrics Integration by @kcenon in #64
  • Refactor async task scheduling and integrate common_system Phase 2 by @kcenon in #65
  • fix: Replace atomic flag with std::call_once to eliminate Promise/Future race condition by @kcenon in #66
  • docs: Document ABA problem mitigation and add ThreadSanitizer guide by @kcenon in #67
  • Fix P0 issue: Prevent worker thread exception handling infinite loop by @kcenon in #68
  • Consolidate namespace to kcenon::thread by @kcenon in #69
  • Add worker health monitoring to thread pool by @kcenon in #70
  • Update documentation to reflect actual implementation by @kcenon in #71
  • Add comprehensive cancellation token thread safety tests by @kcenon in #72
  • Implement idle worker counting for thread pool monitoring by @kcenon in #73
  • Document MPMC queue TLS cleanup issue and mitigation strategies by @kcenon in #74
  • Implement IExecutor interface unification and Result type conversion by @kcenon in #75
  • Add comprehensive MPMC queue safety warnings and production deployment checklist by @kcenon in #76
  • Sprint 1: Critical stability and portability improvements by @kcenon in #77
  • Sprint 1: Add race condition tests for thread safety by @kcenon in #78
  • Sprint 2: Implement Hazard Pointers and Lock-free MPMC Queue by @kcenon in #79
  • Unify error handling with common_system (Phase 1) by @kcenon in #80
  • Sprint 4-5: Documentation and Build System Improvements by @kcenon in #81
  • Fix: Add mutex synchronization to should_continue_work() by @kcenon in #82
  • feat: C++17 migration with optional C++20 feature detection by @kcenon in #84
  • Verify and document C++17 migration completion by @kcenon in #85
  • docs: implement unified documentation standard by @kcenon in #86
  • chore: cleanup completed documentation and standardize BSD 3-Clause license by @kcenon in #87
  • Consolidate build scripts into scripts directory by @kcenon in #88
  • Fix compilation errors: remove invalid override keywords by @kcenon in #89
  • Fix(core): Enhance hazard pointer safety and resource management by @kcenon in #94
  • refactor: remove deprecated executor_interface usage by @kcenon in #96
  • feat: implement all kanban tickets (THR-001 to THR-010) by @kcenon in #97
  • refactor: stabilize tests and unify test directories by @kcenon in #98
  • Complete kanban tickets THR...
Read more