C++ Actor Framework 0.18
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
caf::scheduler::profiled_coordinator< Policy > Class Template Reference

A coordinator which keeps fine-grained profiling state about its workers and their jobs. More...

#include <profiled_coordinator.hpp>

Inheritance diagram for caf::scheduler::profiled_coordinator< Policy >:
caf::scheduler::coordinator< Policy > caf::scheduler::abstract_coordinator caf::actor_system::module

Public Types

using super = coordinator< Policy >
 
using clock_type = std::chrono::high_resolution_clock
 
using usec = std::chrono::microseconds
 
using msec = std::chrono::milliseconds
 
- Public Types inherited from caf::scheduler::coordinator< Policy >
using super = abstract_coordinator
 
using policy_data = typename Policy::coordinator_data
 
using worker_type = worker< Policy >
 
- Public Types inherited from caf::scheduler::abstract_coordinator
enum  utility_actor_id : size_t {
  printer_id ,
  max_id
}
 
- Public Types inherited from caf::actor_system::module
enum  id_t {
  scheduler ,
  middleman ,
  openssl_manager ,
  network_manager ,
  num_ids
}
 

Public Member Functions

 profiled_coordinator (actor_system &sys)
 
void init (actor_system_config &cfg) override
 Allows the module to change the configuration of the actor system during startup.
 
void start () override
 Starts any background threads needed by the module.
 
void stop () override
 Stops all background threads of the module.
 
void start_measuring (size_t worker, actor_id job)
 
void stop_measuring (size_t worker, actor_id job)
 
void remove_job (actor_id job)
 
template<class Time , class Label >
void record (Time t, Label label, size_t rec_id, const measurement &m)
 
void report (const actor_id &job, const measurement &m)
 
- Public Member Functions inherited from caf::scheduler::coordinator< Policy >
 coordinator (actor_system &sys)
 
worker_typeworker_by_id (size_t x)
 
policy_data & data ()
 
- Public Member Functions inherited from caf::scheduler::abstract_coordinator
 abstract_coordinator (actor_system &sys)
 
actor printer () const
 Returns a handle to the central printing actor.
 
size_t num_utility_actors () const
 Returns the number of utility actors.
 
virtual void enqueue (resumable *what)=0
 Puts what into the queue of a randomly chosen worker.
 
actor_systemsystem ()
 
const actor_system_configconfig () const
 
size_t max_throughput () const
 
size_t num_workers () const
 
virtual bool detaches_utility_actors () const
 Returns true if this scheduler detaches its utility actors.
 
void start () override
 Starts any background threads needed by the module.
 
void init (actor_system_config &cfg) override
 Allows the module to change the configuration of the actor system during startup.
 
id_t id () const override
 Returns the identifier of this module.
 
void * subtype_ptr () override
 Returns a pointer to the subtype.
 
virtual actor_clockclock () noexcept=0
 
- Public Member Functions inherited from caf::actor_system::module
const char * name () const noexcept
 Returns the human-redable name of the module.
 
virtual void start ()=0
 Starts any background threads needed by the module.
 
virtual void stop ()=0
 Stops all background threads of the module.
 
virtual void init (actor_system_config &)=0
 Allows the module to change the configuration of the actor system during startup.
 
virtual id_t id () const =0
 Returns the identifier of this module.
 
virtual void * subtype_ptr ()=0
 Returns a pointer to the subtype.
 

Public Attributes

std::mutex job_mtx_
 
std::mutex file_mtx_
 
std::ofstream file_
 
msec resolution_
 
std::chrono::system_clock::time_point system_start_
 
clock_type::duration clock_start_
 
std::vector< worker_state > worker_states_
 
std::unordered_map< actor_id, measurement > jobs_
 
clock_type::duration last_flush_ = clock_type::duration::zero()
 

Additional Inherited Members

- Static Public Member Functions inherited from caf::scheduler::coordinator< Policy >
static actor_system::modulemake (actor_system &sys, detail::type_list<>)
 
- Static Public Member Functions inherited from caf::scheduler::abstract_coordinator
static void cleanup_and_release (resumable *)
 
static size_t default_thread_count () noexcept
 
- Protected Member Functions inherited from caf::scheduler::coordinator< Policy >
void start () override
 Starts any background threads needed by the module.
 
void stop () override
 Stops all background threads of the module.
 
void enqueue (resumable *ptr) override
 Puts what into the queue of a randomly chosen worker.
 
detail::thread_safe_actor_clock & clock () noexcept override
 
- Protected Member Functions inherited from caf::scheduler::abstract_coordinator
void stop_actors ()
 
- Protected Attributes inherited from caf::scheduler::abstract_coordinator
std::atomic< size_t > next_worker_
 ID of the worker receiving the next enqueue (round-robin dispatch).
 
size_t max_throughput_
 Number of messages each actor is allowed to consume per resume.
 
size_t num_workers_
 Configured number of workers.
 
std::array< actor, max_id > utility_actors_
 Background workers, e.g., printer.
 
actor_systemsystem_
 Reference to the host system.
 

Detailed Description

template<class Policy = policy::profiled<policy::work_stealing>>
class caf::scheduler::profiled_coordinator< Policy >

A coordinator which keeps fine-grained profiling state about its workers and their jobs.

Member Function Documentation

◆ init()

template<class Policy = policy::profiled<policy::work_stealing>>
void caf::scheduler::profiled_coordinator< Policy >::init ( actor_system_config )
overridevirtual

Allows the module to change the configuration of the actor system during startup.

Reimplemented from caf::scheduler::abstract_coordinator.

◆ start()

template<class Policy = policy::profiled<policy::work_stealing>>
void caf::scheduler::profiled_coordinator< Policy >::start ( )
overridevirtual

Starts any background threads needed by the module.

Reimplemented from caf::scheduler::coordinator< Policy >.

◆ stop()

template<class Policy = policy::profiled<policy::work_stealing>>
void caf::scheduler::profiled_coordinator< Policy >::stop ( )
overridevirtual

Stops all background threads of the module.

Reimplemented from caf::scheduler::coordinator< Policy >.


The documentation for this class was generated from the following file: