|
Thread System 0.3.1
High-performance C++20 thread pool with work stealing and DAG scheduling
|
| ▼ core | |
| ► base | |
| ► include | |
| ► detail | |
| thread_impl.h | |
| ► sync | |
| ► include | |
| cancellation_token.h | Implementation of a cancellation token for cooperative cancellation |
| error_handling.h | Modern error handling for the thread system |
| sync_primitives.h | |
| docs | |
| ▼ examples | |
| ► adaptive_queue_sample | |
| adaptive_queue_sample.cpp | Adaptive job queue sample comparing policies and demonstrating mode switching |
| ► composition_example | |
| composition_example.cpp | Composition-based design with service container, logger, and monitoring |
| ► config_example | |
| config_example.cpp | Unified configuration system examples using the builder pattern |
| ► crash_protection | |
| main.cpp | Crash protection demonstration for thread system |
| ► hazard_pointer_sample | |
| hazard_pointer_sample.cpp | Hazard pointer usage for safe lock-free memory reclamation |
| ► integration_example | |
| integration_example.cpp | Integration of thread_system with external logger and monitoring services |
| mock_logger.h | |
| mock_monitoring.h | |
| ► job_cancellation_example | |
| job_cancellation_example.cpp | Cooperative job cancellation and graceful shutdown patterns |
| ► logger_sample | |
| logger_sample.cpp | Logger system sample with multi-language Unicode output |
| ► minimal_thread_pool | |
| minimal_thread_pool.cpp | Minimal thread pool example without external logger dependency |
| ► mpmc_queue_sample | |
| mpmc_queue_sample.cpp | Lock-free MPMC queue patterns: SPSC, MPMC, batch ops, and benchmarks |
| ► multi_process_monitoring_integration | |
| multi_process_monitoring_integration.cpp | Multi-process monitoring integration with multiple thread pools |
| ► node_pool_sample | |
| node_pool_sample.cpp | Lock-free node pool for high-performance memory allocation |
| ► queue_capabilities_sample | |
| queue_capabilities_sample.cpp | Runtime queue capability introspection and adaptive queue selection |
| ► queue_factory_sample | |
| queue_factory_sample.cpp | Queue factory for requirements-based and compile-time queue selection |
| ► service_registry_sample | |
| main.cpp | Service registry sample showing singleton service registration and thread pool usage |
| ► thread_pool_sample | |
| thread_pool_sample.cpp | Thread pool sample with logger integration and batch job submission |
| ► typed_job_queue_sample | |
| typed_job_queue_sample.cpp | Lock-free typed job queue with MPMC patterns and performance benchmarks |
| ► typed_thread_pool_sample | |
| typed_thread_pool_sample.cpp | Typed thread pool with priority-based job routing using built-in job_types |
| ► typed_thread_pool_sample_2 | |
| test_type.h | |
| typed_thread_pool_sample_2.cpp | Typed thread pool with a custom priority enum (test_priority) |
| ▼ include | |
| ► kcenon | |
| ► thread | |
| ► adapters | |
| common_executor_adapter.h | Adapter to bridge thread_system pools with common IExecutor interface |
| job_queue_adapter.h | Adapter bridging job_queue to pool_queue_adapter_interface |
| policy_queue_adapter.h | Adapter bridging policy_queue to pool_queue_adapter_interface |
| ► concepts | |
| thread_concepts.h | C++20 Concepts for thread_system |
| ► concurrent | |
| concurrent_queue.h | Thread-safe MPMC queue with blocking wait support |
| ► config | |
| thread_system_config.h | Unified configuration structure for thread_system |
| ► core | |
| atomic_shared_ptr.h | Thread-safe atomic shared_ptr wrapper with explicit memory ordering |
| backpressure_config.h | Configuration for backpressure and queue overflow policies |
| backpressure_job_queue.h | Job queue with backpressure mechanisms for overflow and rate limiting |
| callback_job.h | Specialized job class that encapsulates user-defined callbacks |
| cancellable_future.h | Future wrapper with cancellation support |
| cancellation_exception.h | Exception class for operation cancellation |
| cancellation_reason.h | Cancellation reason structure for enhanced cancellation tokens |
| cancellation_token.h | Implementation of a cancellation token for cooperative cancellation |
| config.h | Central configuration for thread_pool module |
| configuration_manager.h | Runtime configuration management with typed key-value storage |
| enhanced_cancellation_token.h | Enhanced cancellation token with timeout, deadline, and reason support |
| error_handling.h | Error codes and utilities for the thread system |
| event_bus.h | Type-safe publish-subscribe event bus for thread system events |
| future_extensions.h | Future and promise utilities for thread pool |
| future_job.h | Job wrapper that provides std::future for async result returns |
| hazard_pointer.h | Hazard pointer implementation for lock-free memory reclamation |
| job.h | Base job class for schedulable work units in the thread system |
| job_builder.h | Fluent builder for creating and configuring jobs with composition |
| job_queue.h | Thread-safe FIFO job queue with optional bounded size |
| job_types.h | Job priority levels and type definitions for type-based scheduling |
| lifecycle_controller.h | Centralized thread lifecycle state and synchronization management |
| log_level.h | Logging severity levels for the thread system |
| numa_thread_pool.h | NUMA-aware thread pool optimized for Non-Uniform Memory Access architectures |
| pool_traits.h | Type traits and metaprogramming utilities for thread pool |
| retry_policy.h | Retry policy with configurable strategies: fixed, linear, and exponential backoff |
| safe_hazard_pointer.h | Thread-local hazard pointer with explicit memory ordering for safe reclamation |
| service_registry.h | Lightweight service registry for dependency lookup within the thread system |
| submit_options.h | Options struct for unified submit() API |
| sync_primitives.h | RAII-based synchronization primitives including scoped lock with timeout |
| thread_base.h | Foundational worker thread class with lifecycle management |
| thread_conditions.h | Enumeration of thread lifecycle states (starting, running, stopping, stopped) |
| thread_impl.h | Thread implementation abstraction bridging std::jthread and std::thread |
| thread_logger.h | Internal logging interface for the thread system |
| thread_pool.h | Core thread pool implementation with work stealing and auto-scaling |
| thread_pool_builder.h | Fluent builder for creating and configuring thread pools |
| thread_pool_fmt.h | Std::formatter specializations for thread_pool |
| thread_pool_impl.h | Template method implementations for thread_pool |
| thread_worker.h | Specialized worker thread that processes jobs from a job_queue |
| token_bucket.h | Lock-free token bucket rate limiter for controlling throughput |
| typed_thread_pool.h | Public forwarding header for type-safe thread pool |
| typed_thread_worker.h | Worker thread specialized for typed_thread_pool with priority queues |
| worker_policy.h | Worker behavior policies and configuration |
| ► dag | |
| dag_config.h | Configuration for DAG scheduler including failure handling policies |
| dag_job.h | DAG-aware job with dependency tracking and unique identifiers |
| dag_job_builder.h | Fluent builder for creating dag_job instances with dependencies |
| dag_scheduler.h | DAG-based job scheduler with dependency management and topological execution |
| ► di | |
| service_registration.h | Service container registration for thread_system services |
| ► diagnostics | |
| bottleneck_report.h | Bottleneck detection and reporting for thread pool performance analysis |
| execution_event.h | Job execution event types and listener interface for tracing |
| health_status.h | Health status thresholds and monitoring for thread pools |
| job_info.h | Job information snapshot for diagnostics and monitoring |
| thread_info.h | Worker thread state information for diagnostics |
| thread_pool_diagnostics.h | Runtime diagnostics, health monitoring, and execution tracing for thread pools |
| ► impl | |
| ► typed_pool | |
| aging_typed_job.h | Typed job with priority aging support to prevent starvation |
| aging_typed_job_queue.h | Priority queue with aging to prevent low-priority job starvation |
| callback_typed_job.h | Callback-based typed job for priority-aware lambda execution |
| config.h | Central configuration for typed_thread_pool module |
| job_types.h | Job type definitions for the typed thread pool |
| pool_builder.h | Builder pattern implementation for typed_thread_pool construction |
| priority_aging_config.h | Configuration for priority aging and starvation prevention |
| template_helpers.h | Template metaprogramming utilities for typed_thread_pool module |
| type_traits.h | Type traits for typed_thread_pool module |
| typed_job.h | Base typed job carrying a specific priority level |
| typed_job_interface.h | Interface definitions for typed jobs |
| typed_thread_pool.h | Type-based thread pool with priority scheduling and job type routing |
| typed_thread_worker.h | Worker thread for typed_thread_pool processing priority job queues |
| ► interfaces | |
| crash_handler.h | Crash safety levels and handler interface for thread failure recovery |
| error_handler.h | Error handler interface for customizable error handling strategies |
| pool_queue_adapter.h | Abstract interface for queue adapters used by thread_pool |
| queue_capabilities.h | Runtime-queryable queue capabilities descriptor |
| queue_capabilities_interface.h | Mixin interface for queue capability introspection |
| queue_traits.h | Type traits for detecting queue synchronization policy tags |
| scheduler_interface.h | Abstract scheduler interface for queuing and retrieving jobs |
| service_container.h | Service container for dependency injection within the thread system |
| thread_context.h | Context object providing access to optional thread system services |
| ► lockfree | |
| lockfree_job_queue.h | Lock-free MPMC job queue using Michael-Scott algorithm with hazard pointers |
| lockfree_queue.h | Backward compatibility header for concurrent_queue |
| work_stealing_deque.h | Dynamic circular array work-stealing deque for lock-free task distribution |
| ► metrics | |
| enhanced_metrics.h | Enhanced metrics snapshot with latency percentiles and throughput |
| latency_histogram.h | HDR-style histogram for latency distribution with logarithmic buckets |
| metrics_backend.h | Abstract interface for metrics export backends |
| metrics_base.h | Thread pool metrics collection, histograms, and observability |
| metrics_service.h | Centralized metrics service for thread pool metrics management |
| sliding_window_counter.h | Sliding window counter for throughput measurement |
| thread_pool_metrics.h | Lightweight metrics container shared between thread_pool and workers |
| ► policies | |
| bound_policies.h | Bound policies for queue capacity: unbounded or fixed-size |
| overflow_policies.h | Overflow handling policies: reject, drop-oldest, or block |
| policies.h | Convenience header for all queue policies |
| policy_queue.h | Policy-based job queue template with customizable sync, bound, and overflow |
| sync_policies.h | Synchronization policies: mutex-based or spinlock-based |
| ► pool_policies | |
| autoscaling_pool_policy.h | Pool policy implementing automatic worker scaling based on load |
| circuit_breaker_policy.h | Pool policy implementing circuit breaker pattern for failure protection |
| pool_policy.h | Base interface for extensible thread pool behavior policies |
| work_stealing_pool_policy.h | Pool policy implementing work-stealing for load balancing |
| ► queue | |
| adaptive_job_queue.h | Adaptive queue that auto-switches between mutex and lock-free modes |
| queue_factory.h | Factory for creating queue instances based on configuration |
| ► resilience | |
| protected_job.h | Job wrapper integrating circuit breaker protection |
| ► scaling | |
| autoscaler.h | Automatic scaling of thread pool workers based on load metrics |
| autoscaling_policy.h | Configuration for autoscaling behavior and thresholds |
| scaling_metrics.h | Scaling direction and metrics for autoscaling decisions |
| ► stealing | |
| enhanced_steal_policy.h | Enhanced policies for selecting work-stealing victims |
| enhanced_work_stealing_config.h | Configuration for enhanced work-stealing with NUMA awareness |
| numa_topology.h | NUMA node topology detection and information |
| numa_work_stealer.h | NUMA-aware work stealer with enhanced victim selection policies |
| steal_backoff_strategy.h | Backoff strategies for work-stealing operations |
| work_affinity_tracker.h | Tracks cooperation patterns between workers for locality-aware stealing |
| work_stealing_stats.h | Statistics snapshot for work-stealing performance monitoring |
| ► utils | |
| atomic_wait.h | C++17-compatible atomic wait/notify implementation |
| batch_operations.h | Helper templates for batch operations to eliminate duplicated loop patterns |
| convert_string.h | String encoding conversion, Base64 encoding/decoding utilities |
| formatter.h | Generic formatter for enum types using user-provided converter functors |
| formatter_macros.h | Provides macros for generating std::formatter specializations |
| platform_detection.h | CPU architecture and platform detection utilities |
| span.h | Polyfill for std::span on pre-C++20 compilers |
| synchronization.h | C++17-compatible synchronization primitives with C++20 fallback |
| when_helpers.h | Helper functions for combining multiple futures |
| compatibility.h | Backward-compatible type aliases for renamed thread system components |
| diagnostics.h | Stable public include for thread pool diagnostics |
| formatters.h | Unified header for all std::formatter specializations in thread_system |
| forward.h | Forward declarations for thread system types |
| thread_config.h | Public facade for thread_system configuration |
| thread_pool.h | Stable public include for thread_pool and numa_thread_pool |
| typed_thread_pool.h | Stable public include for typed_thread_pool_t |
| ▼ src | |
| ► core | |
| backpressure_job_queue.cpp | Implementation of backpressure-aware job queue |
| callback_job.cpp | Implementation of callback-based job execution for the thread system |
| enhanced_cancellation_token.cpp | |
| hazard_pointer.cpp | |
| job.cpp | Implementation of the base job class for the thread system |
| job_queue.cpp | Implementation of thread-safe FIFO job queue for thread system |
| lifecycle_controller.cpp | |
| thread_base.cpp | Implementation of the core thread base class |
| thread_logger_init.cpp | Early initialization of thread_logger shutdown handler for SDOF prevention |
| token_bucket.cpp | Implementation of lock-free token bucket rate limiter |
| ► dag | |
| dag_job.cpp | |
| dag_job_builder.cpp | |
| dag_scheduler.cpp | |
| ► diagnostics | |
| thread_pool_diagnostics.cpp | |
| ► impl | |
| ► thread_pool | |
| numa_thread_pool.cpp | |
| thread_pool.cpp | Implementation of the thread pool class for managing multiple worker threads |
| thread_pool_builder.cpp | |
| thread_worker.cpp | Implementation of worker thread for thread pool execution |
| ► typed_pool | |
| aging_typed_job.cpp | |
| aging_typed_job_queue.cpp | |
| callback_typed_job.cpp | |
| typed_job.cpp | |
| typed_thread_pool.cpp | |
| typed_thread_worker.cpp | |
| ► lockfree | |
| lockfree_job_queue.cpp | |
| ► metrics | |
| enhanced_metrics.cpp | |
| latency_histogram.cpp | |
| metrics_backend.cpp | |
| metrics_service.cpp | |
| sliding_window_counter.cpp | |
| ► modules | |
| core.cppm | C++20 module partition for thread_system core components |
| queue.cppm | C++20 module partition for thread_system queue implementations |
| thread.cppm | Primary C++20 module for thread_system |
| ► pool_policies | |
| autoscaling_pool_policy.cpp | |
| circuit_breaker_policy.cpp | |
| work_stealing_pool_policy.cpp | |
| ► queue | |
| adaptive_job_queue.cpp | |
| queue_factory.cpp | |
| ► resilience | |
| protected_job.cpp | |
| ► scaling | |
| autoscaler.cpp | |
| ► stealing | |
| numa_topology.cpp | |
| numa_work_stealer.cpp | |
| work_affinity_tracker.cpp | |
| ► utils | |
| convert_string.cpp | Implementation of cross-platform string conversion utilities |
| ▼ utilities | |
| ► include | |
| convert_string.h | |
| formatter.h | |
| formatter_macros.h | Provides macros for generating std::formatter specializations |
| span.h |