.. index:: pair: class; EE::Executor .. _doxid-class_e_e_1_1_executor: class EE::Executor ================== .. toctree:: :hidden: Overview ~~~~~~~~ Abstract destination for work items. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class Executor { public: // typedefs typedef :ref:`SmallUniqueFunction``> :target:`Function`; // fields static constexpr std::size_t :ref:`FunctionInlineSize` = 64; // construction virtual :target:`~Executor`(); // methods virtual void :target:`execute`(:ref:`Function` function) = 0; }; .. _details-class_e_e_1_1_executor: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Abstract destination for work items. Core code schedules continuations through this interface without knowing whether they run on a thread pool, the :ref:`UI ` thread, an I/O thread, or inline. Implementations must run every accepted function exactly once, unless the executor is being destroyed, in which case pending functions may be destroyed without running (their owned state, such as task resolvers, is then released normally). Fields ------ .. index:: pair: variable; FunctionInlineSize .. _doxid-class_e_e_1_1_executor_1a412519a6d5b5d9c225c995a573cf4544: .. ref-code-block:: cpp :class: doxyrest-title-code-block static constexpr std::size_t FunctionInlineSize = 64 Inline capacity of an executor work item. Continuations that capture a callable, a task source and a task state fit without a heap allocation.