CAF 0.17.6
Loading...
Searching...
No Matches
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 caf::policy::profiled< policy::work_stealing >

Public Types

using queue_type = detail::double_ended_queue<resumable>

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.
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.
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.
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.
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.
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: