proxygen
|
#include <ExecutorLoopController.h>
Public Member Functions | |
ExecutorLoopController (folly::Executor *executor) | |
~ExecutorLoopController () override | |
![]() | |
virtual | ~LoopController () |
Private Member Functions | |
void | setFiberManager (fibers::FiberManager *fm) override |
void | schedule () override |
void | runLoop () override |
void | scheduleThreadSafe () override |
void | timedSchedule (std::function< void()> func, TimePoint time) override |
Private Attributes | |
folly::Executor * | executor_ |
Executor::KeepAlive | executorKeepAlive_ |
fibers::FiberManager * | fm_ {nullptr} |
Friends | |
class | fibers::FiberManager |
Additional Inherited Members | |
![]() | |
typedef std::chrono::steady_clock | Clock |
typedef std::chrono::time_point< Clock > | TimePoint |
A fiber loop controller that works for arbitrary folly::Executor
Definition at line 31 of file ExecutorLoopController.h.
|
inlineexplicit |
Definition at line 22 of file ExecutorLoopController-inl.h.
|
inlineoverride |
Definition at line 25 of file ExecutorLoopController-inl.h.
|
inlineoverrideprivatevirtual |
Run FiberManager loopUntilNoReadyImpl(). May have additional logic specific to a LoopController.
Implements folly::fibers::LoopController.
Definition at line 39 of file ExecutorLoopController-inl.h.
References executor_, executorKeepAlive_, fm_, folly::getKeepAliveToken(), folly::fibers::FiberManager::hasTasks(), folly::fibers::FiberManager::loopUntilNoReadyImpl(), and folly::Executor::KeepAlive< ExecutorT >::reset().
Referenced by schedule(), and scheduleThreadSafe().
|
inlineoverrideprivatevirtual |
Called by FiberManager to schedule the loop function run at some point in the futufre.
Implements folly::fibers::LoopController.
Definition at line 31 of file ExecutorLoopController-inl.h.
References folly::Executor::add(), executor_, executorKeepAlive_, folly::getKeepAliveToken(), and runLoop().
|
inlineoverrideprivatevirtual |
Same as schedule(), but safe to call from any thread.
Implements folly::fibers::LoopController.
Definition at line 52 of file ExecutorLoopController-inl.h.
References folly::Executor::add(), executor_, fm_, folly::getKeepAliveToken(), runLoop(), and folly::fibers::FiberManager::shouldRunLoopRemote().
|
inlineoverrideprivatevirtual |
Called by FiberManager to associate itself with the LoopController.
Implements folly::fibers::LoopController.
Definition at line 27 of file ExecutorLoopController-inl.h.
References fm_.
|
inlineoverrideprivatevirtual |
Called by FiberManager to schedule some function to be run at some time.
Implements folly::fibers::LoopController.
Definition at line 61 of file ExecutorLoopController-inl.h.
|
friend |
Definition at line 47 of file ExecutorLoopController.h.
|
private |
Definition at line 37 of file ExecutorLoopController.h.
Referenced by runLoop(), schedule(), and scheduleThreadSafe().
|
private |
Definition at line 38 of file ExecutorLoopController.h.
Referenced by runLoop(), and schedule().
|
private |
Definition at line 39 of file ExecutorLoopController.h.
Referenced by runLoop(), scheduleThreadSafe(), and setFiberManager().