libcaf  0.15.5
Public Types | Public Member Functions | List of all members
caf::policy::work_stealing Class Reference

Implements scheduling of actors via work stealing. More...

#include <work_stealing.hpp>

Inheritance diagram for caf::policy::work_stealing:
caf::policy::scheduler_policy caf::policy::unprofiled

Public Types

using queue_type = detail::double_ended_queue< resumable >
 
using usec = std::chrono::microseconds
 

Public Member Functions

template<class Worker >
resumabletry_steal (Worker *self)
 
template<class Coordinator >
void central_enqueue (Coordinator *self, resumable *job)
 
template<class Worker >
void external_enqueue (Worker *self, resumable *job)
 
template<class Worker >
void internal_enqueue (Worker *self, resumable *job)
 
template<class Worker >
void resume_job_later (Worker *self, resumable *job)
 
template<class Worker >
resumabledequeue (Worker *self)
 
template<class Worker , class UnaryFunction >
void foreach_resumable (Worker *self, UnaryFunction f)
 
template<class Coordinator , class UnaryFunction >
void foreach_central_resumable (Coordinator *, UnaryFunction)
 
- Public Member Functions inherited from caf::policy::scheduler_policy
template<class Coordinator >
void central_enqueue (Coordinator *self, resumable *job)
 Enqueues a new job to coordinator.
 
template<class Worker >
void external_enqueue (Worker *self, resumable *job)
 Enqueues a new job to the worker's queue from an external source, i.e., from any other thread. More...
 
template<class Worker >
void internal_enqueue (Worker *self, resumable *job)
 Enqueues a new job to the worker's queue from an internal source, i.e., from the same thread. More...
 
template<class Worker >
void resume_job_later (Worker *self, resumable *job)
 Called whenever resumable returned for reason resumable::resume_later.
 
template<class Worker >
resumabledequeue (Worker *self)
 Blocks until a job could be dequeued. More...
 
template<class Worker >
void before_shutdown (Worker *self)
 Performs cleanup action before a shutdown takes place.
 
template<class Worker >
void before_resume (Worker *self, resumable *job)
 Called immediately before resuming an actor.
 
template<class Worker >
void after_resume (Worker *self, resumable *job)
 Called whenever an actor has been resumed. More...
 
template<class Worker >
void after_completion (Worker *self, resumable *job)
 Called whenever an actor has completed a job.
 
template<class Worker , typename UnaryFunction >
void foreach_resumable (Worker *self, UnaryFunction f)
 Applies given functor to all resumables attached to a worker.
 
template<class Coordinator , typename UnaryFunction >
void foreach_central_resumable (Coordinator *self, UnaryFunction f)
 Applies given functor to all resumables attached to the coordinator.
 
- Public Member Functions inherited from caf::policy::unprofiled
template<class Worker >
void before_shutdown (Worker *)
 Performs cleanup action before a shutdown takes place.
 
template<class Worker >
void before_resume (Worker *, resumable *)
 Called immediately before resuming an actor.
 
template<class Worker >
void after_resume (Worker *, resumable *)
 Called whenever an actor has been resumed. More...
 
template<class Worker >
void after_completion (Worker *, resumable *)
 Called whenever an actor has completed a job.
 

Additional Inherited Members

- Static Protected Member Functions inherited from caf::policy::unprofiled
template<class WorkerOrCoordinator >
static auto d (WorkerOrCoordinator *self) -> decltype(self->data())
 

Detailed Description

Implements scheduling of actors via work stealing.


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