24#include <unordered_map>
62class io_context_thread_manager {
84 std::shared_ptr<asio::io_context> io_context,
85 const std::string& component_name =
""
125 bool is_active(std::shared_ptr<asio::io_context> io_context)
const;
Manages io_context execution on shared thread pools.
void stop_all()
Stop all managed io_contexts.
std::shared_ptr< impl > pimpl_
PIMPL pointer with intentional leak pattern.
metrics get_metrics() const
Get current metrics.
bool is_active(std::shared_ptr< asio::io_context > io_context) const
Check if an io_context is managed and running.
size_t active_count() const
Get the number of active io_contexts.
io_context_thread_manager(const io_context_thread_manager &)=delete
io_context_thread_manager & operator=(io_context_thread_manager &&)=delete
void stop_io_context(std::shared_ptr< asio::io_context > io_context)
Stop an io_context managed by this manager.
static io_context_thread_manager & instance()
Get the singleton instance.
void set_thread_pool(std::shared_ptr< thread_pool_interface > pool)
Set a custom thread pool.
void wait_all()
Wait for all managed io_contexts to complete.
io_context_thread_manager()
~io_context_thread_manager()
io_context_thread_manager(io_context_thread_manager &&)=delete
io_context_thread_manager & operator=(const io_context_thread_manager &)=delete
std::future< void > run_io_context(std::shared_ptr< asio::io_context > io_context, const std::string &component_name="")
Run an io_context on the shared thread pool.
size_t total_started
Total io_contexts started.
size_t total_completed
Total io_contexts completed.
size_t active_contexts
Number of running io_contexts.
Thread system integration interface for network_system.