9#include "rotor/arc.hpp"
10#include "rotor/system_context.h"
11#include "rotor/timer_handler.hpp"
12#include "rotor/thread/export.h"
14#include <condition_variable>
21#pragma warning(disable : 4251)
27struct supervisor_thread_t;
45 virtual
void run() noexcept;
48 void check() noexcept;
52 using
clock_t = std::chrono::steady_clock;
66 using list_t = std::list<deadline_info_t>;
82 std::condition_variable cv;
91 bool intercepting = false;
intrusive_ptr_t< supervisor_thread_t > supervisor_ptr_t
intrusive pointer for thread supervisor
Definition system_context_thread.h:30
rotor::intrusive_ptr_t< system_context_thread_t > system_context_ptr_t
intrusive pointer type for system context thread context
Definition system_context_thread.h:97
Basic namespace for all rotor functionalities.
Definition rotor.hpp:21
std::size_t request_id_t
timer identifier type in the scope of the actor
Definition forward.hpp:34
boost::intrusive_ptr< T > intrusive_ptr_t
alias for intrusive pointer
Definition arc.hpp:27
The system context holds root supervisor_t (intrusive pointer) and may be loop-related details in der...
Definition system_context.h:32
pure thread supervisor dedicated for blocking I/O or computing operations
Definition supervisor_thread.h:24
struct to keep timer handlers
Definition system_context_thread.h:57
timer_handler_base_t * handler
non-owning pointer to timer handler
Definition system_context_thread.h:59
clock_t::time_point deadline
time point, after which the timer is considered expired
Definition system_context_thread.h:62
The thread system context, for blocking operations.
Definition system_context_thread.h:36
system_context_thread_t() noexcept
constructs thread system context
void update_time() noexcept
fires handlers for expired timers
std::chrono::steady_clock clock_t
an alias for monotonic clock
Definition system_context_thread.h:52
std::list< deadline_info_t > list_t
ordered list of deadline infos (type)
Definition system_context_thread.h:66
Base class for timer handler.
Definition timer_handler.hpp:17