SObjectizer 5.8
Loading...
Searching...
No Matches
work_thread.hpp File Reference

Working thread for dispatchers. More...

#include <atomic>
#include <condition_variable>
#include <deque>
#include <memory>
#include <mutex>
#include <thread>
#include <utility>
#include <so_5/declspec.hpp>
#include <so_5/current_thread_id.hpp>
#include <so_5/event_queue.hpp>
#include <so_5/disp/mpsc_queue_traits/pub.hpp>
#include <so_5/stats/work_thread_activity.hpp>
#include <so_5/stats/impl/activity_tracking.hpp>
#include <so_5/impl/thread_join_stuff.hpp>
#include <so_5/details/rollback_on_exception.hpp>
#include <so_5/details/invoke_noexcept_code.hpp>

Go to the source code of this file.

Classes

struct  so_5::disp::reuse::work_thread::demand_queue_details::common_data_t
 Common data for all implementations of demand_queue. More...
 
class  so_5::disp::reuse::work_thread::demand_queue_details::no_activity_tracking_impl_t
 A part of demand queue implementation for the case when activity tracking is not used. More...
 
class  so_5::disp::reuse::work_thread::demand_queue_details::with_activity_tracking_impl_t
 A part of demand queue implementation for the case when activity tracking is used. More...
 
class  so_5::disp::reuse::work_thread::demand_queue_details::queue_template_t< Impl >
 Implementation of demand_queue in form of a template. More...
 
struct  so_5::disp::reuse::work_thread::details::common_data_t< Demand_Queue >
 Common data for all work thread implementations. More...
 
class  so_5::disp::reuse::work_thread::details::no_activity_tracking_impl_t
 Part of implementation of work thread without activity tracking. More...
 
class  so_5::disp::reuse::work_thread::details::activity_tracking_impl_t
 Part of implementation of work thread with activity tracking. More...
 
class  so_5::disp::reuse::work_thread::details::work_thread_template_t< Impl >
 Implementation of work thread in form of template. More...
 

Namespaces

namespace  so_5
 Private part of message limit implementation.
 
namespace  so_5::disp
 Event dispatchers.
 
namespace  so_5::disp::reuse
 Reusable components for dispatchers.
 
namespace  so_5::disp::reuse::work_thread
 Implemetation details of dispatcher's working thread.
 
namespace  so_5::disp::reuse::work_thread::demand_queue_details
 
namespace  so_5::disp::reuse::work_thread::details
 

Typedefs

using so_5::disp::reuse::work_thread::demand_container_t = std::deque< execution_demand_t >
 Typedef for demand's container.
 
using so_5::disp::reuse::work_thread::demands_counter_t = std::atomic< std::size_t >
 Typedef for atomic demands counter.
 
using so_5::disp::reuse::work_thread::demand_queue_no_activity_tracking_t
 An alias for demand_queue without activity tracking.
 
using so_5::disp::reuse::work_thread::demand_queue_with_activity_tracking_t
 An alias for demand_queue with activity tracking.
 
using so_5::disp::reuse::work_thread::work_thread_no_activity_tracking_t
 Type of work thread without activity tracking.
 
using so_5::disp::reuse::work_thread::work_thread_with_activity_tracking_t
 Working thread with activity tracking.
 

Enumerations

enum class  so_5::disp::reuse::work_thread::extraction_result_t { so_5::disp::reuse::work_thread::demand_extracted = 1 , so_5::disp::reuse::work_thread::shutting_down = 2 , so_5::disp::reuse::work_thread::no_demands = 3 }
 Type for result of demand extraction. More...
 
enum class  so_5::disp::reuse::work_thread::details::status_t : int { so_5::disp::reuse::work_thread::details::stopped = 0 , so_5::disp::reuse::work_thread::details::working = 1 }
 Thread status flag. More...
 

Detailed Description

Working thread for dispatchers.

Definition in file reuse/work_thread/work_thread.hpp.