Lines Matching full:executor
15 ….Thread differs from N3785 mainly in the an Executor doesn't needs to inherit from an abstract cla…
22 …executor objects. This allows programs to start executors when necessary, switch from one executor…
34 …executor, in which one thread donates itself to the executor to execute all queued work. This is r…
35 …executor, where a GUI framework can expose an executor interface to allow other threads to queue u…
37 …executor, but always uses the caller’s thread to execute. This allows parallel execution of works,…
39 …executor (e.g. the thread pool) to have more precise control of where the work is executed due to …
115 …executor class we make executor concepts. We believe that this is the good direction as a static p…
119 …Executor is an object that schedules the closures that have been submitted to it, usually asynchro…
121 * Thread pools are well know models of the Executor concept, and this library does indeed include a…
123 …executor to use is explicit. This is important for reasons described in the Motivation section. In…
125 * Even if there could be a strong value in having a default executor, that can be used when detaile…
127 …mic polymorphism interface has the advantage to been able to change the executor a function is usi…
129 …ually, an executor puts closures on a queue and at some point executes them. The queue is always u…
137 …executor interface can provide the template functions that call to the virtual public functions. A…
141 …executor’s queue will have to use some form of type erasure. There’s no reason to believe that a c…
148 …template functions to a class scheduled_executor that wraps an existing executor. This has several…
163 …interface, we opt by adding a specific `scheduler` class that is not an executor and knows how to …
166 `scheduler` provides executor factories `at`/`after` given a specific `time_point` or a `duration`.…
168 …executor (as `serial_executor` does), these classes provide a `on` factory taking another executo…
180 …n than `std`/`boost::thread` if a user closure throws an exception, the executor must call the `st…
185 …hall have the ability to call a user specific function at thread entry on the executor constructor.
307 [heading Current executor]
309 The library does not provision for the ability to get the current executor, though having access to…
314 executor* current_executor() { return current_executor_state.current_executor(); }
323 [heading Default executor]
325 …e environments) and that this library doesn't need to provide a default executor for the time been…
327 The user can always define his default executor himself.
351 [section:concept_executor Concept `Executor`]
353 The `Executor` concept models the common operations of all the executors.
355 A type `E` meets the `Executor` requirements if the following expressions are well-formed and have …
377 If invoked closure throws an exception the executor will call std::terminate, as is the case with t…
385 [[Exception safety:] [If an exception is thrown then the executor state is unmodified.]]
396 If invoked closure throws an exception the executor will call std::terminate, as is the case with t…
404 [[Exception safety:] [If an exception is thrown then the executor state is unmodified.]]
414 [[Effects:] [close the executor `e` for submissions.]]
422 [[Exception safety:] [If an exception is thrown then the executor state is unmodified.]]
434 [[Return:] [whether the executor is closed for submissions.]]
498 [section:executor Class `executor`]
500 Executor abstract base class.
502 #include <boost/thread/executors/executor.hpp>
504 class executor
509 executor(executor const&) = delete;
510 executor& operator=(executor const&) = delete;
512 executor();
513 virtual ~executor() {};
530 [section:constructor Constructor `executor()`]
532 executor();
536 [[Effects:] [Constructs an executor. ]]
545 [section:constructor Destructor `~executor()`]
547 virtual ~executor();
551 [[Effects:] [Destroys the executor.]]
553 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
565 Polymorphic adaptor of a model of Executor to an executor.
567 #include <boost/thread/executors/executor.hpp>
569 template <typename Executor>
570 class executor_adaptor : public executor
572 Executor ex; // for exposition only
574 typedef executor::work work;
582 Executor& underlying_executor() noexcept;
620 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
628 Executor& underlying_executor() noexcept;
632 [[Return:] [The underlying executor instance. ]]
644 Executor abstract base class.
654 template <class Executor>
655 generic_executor_ref(Executor& ex);
675 Scheduler providing time related functions. Note that `scheduler` is not an Executor.
706 template <class Executor>
707 scheduler_executor_wrapper<scheduler, Executor> on(Executor& ex);
736 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
810 template <class Executor>
811 resubmit_at_executor<Scheduler, Executor> on(Executor& ex);
840 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
914 template <class Scheduler, class Executor>
926 scheduler_executor_wrapper(Scheduler& sch, Executor& ex);
933 Executor& underlying_executor();
944 resubmit_at_executor<Scheduler, Executor> at(chrono::time_point<clock,Duration> abs_time);
946 resubmit_at_executor<Scheduler, Executor> after(chrono::duration<Rep,Period> rel_time);
952 [section:constructor Constructor `scheduler_executor_wrapper(Scheduler&, Executor&)`]
954 scheduler_executor_wrapper(Scheduler& sch, Executor& ex);
974 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
994 Executor& underlying_executor() noexcept;
998 [[Return:] [The underlying executor instance. ]]
1011 [[Effects:] [Submit the `closure` on the underlying executor. ]]
1026 [[Effects:] [Resubmit the `closure` to be executed on the underlying executor at `abs_time`. ]]
1041 [[Effects:] [Resubmit the `closure` to be executed on the underlying executor after `rel_time`. ]]
1055 `Executor` wrapping an `Scheduler`, an `Executor` and a `time_point` providing an `Executor` interf…
1060 template <class Scheduler, class Executor>
1073 resubmit_at_executor(Scheduler& sch, Executor& ex, clock::time_point<Duration> const& tp);
1079 Executor& underlying_executor();
1094 [section:constructor Constructor `resubmit_at_executor(Scheduler&, Executor&, clock::time_point<Dur…
1097 resubmit_at_executor(Scheduler& sch, Executor& ex, clock::time_point<Duration> const& tp);
1118 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
1126 Executor& underlying_executor() noexcept;
1130 [[Return:] [The underlying executor instance. ]]
1155 [[Effects:] [Resubmit the `closure` to be executed on the underlying executor at the `abs_time` giv…
1170 [[Effects:] [Resubmit the `closure` to be executed on the underlying executor at `abs_time`. ]]
1185 [[Effects:] [Resubmit the `closure` to be executed on the underlying executor after `rel_time`. ]]
1200 Executor providing time related functions.
1204 template <class Executor>
1207 Executor& ex;
1209 typedef executor::work work;
1215 …scheduled_executor_ref(Executor& ex, chrono::duration<Rep, Period> granularity=chrono::millisecond…
1217 Executor& underlying_executor() noexcept;
1239 [section:constructor Constructor `scheduled_executor_ref(Executor&, chrono::duration<Rep, Period>)`]
1242 …scheduled_executor_ref(Executor& ex, chrono::duration<Rep, Period> granularity=chrono::millisecond…
1263 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
1271 Executor& underlying_executor() noexcept;
1275 [[Return:] [The underlying executor instance. ]]
1288 [[Effects:] [Resubmit the `closure` to be executed on the underlying executor. ]]
1334 A serial executor ensuring that there are no two work units that executes concurrently.
1338 template <class Executor>
1345 template <class Executor>
1346 serial_executor(Executor& ex);
1348 Executor& underlying_executor() noexcept;
1364 [section:constructor Constructor `serial_executor(Executor&)`]
1366 template <class Executor>
1367 serial_executor(Executor& ex);
1388 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
1400 [[Return:] [The underlying executor instance. ]]
1415 A serial executor ensuring that there are no two work units that executes concurrently.
1464 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
1531 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
1588 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]
1599 A user scheduled executor.
1635 [[Effects:] [creates an executor that runs closures using one of its closure-executing methods. ]]
1650 [[Effects:] [Destroys the executor.]]
1652 …on:] [The completion of all the closures happen before the completion of the executor destructor.]]