proxygen
|
#include <TimeoutController.h>
Classes | |
struct | TimeoutHandle |
Public Types | |
typedef std::chrono::steady_clock | Clock |
typedef std::chrono::time_point< Clock > | TimePoint |
typedef Clock::duration | Duration |
Public Member Functions | |
TimeoutController (LoopController &loopController) | |
intptr_t | registerTimeout (std::function< void()> f, Duration duration) |
void | cancel (intptr_t id) |
void | runTimeouts (TimePoint time) |
Private Types | |
typedef std::queue< TimeoutHandle > | TimeoutHandleList |
typedef std::unique_ptr< TimeoutHandleList > | TimeoutHandleListPtr |
Private Member Functions | |
void | scheduleRun () |
Private Attributes | |
std::vector< std::pair< Duration, TimeoutHandleListPtr > > | timeoutHandleBuckets_ |
TimePoint | nextTimeout_ |
LoopController & | loopController_ |
Definition at line 32 of file TimeoutController.h.
typedef std::chrono::steady_clock folly::fibers::TimeoutController::Clock |
Definition at line 35 of file TimeoutController.h.
typedef Clock::duration folly::fibers::TimeoutController::Duration |
Definition at line 37 of file TimeoutController.h.
|
private |
Definition at line 49 of file TimeoutController.h.
|
private |
Definition at line 51 of file TimeoutController.h.
typedef std::chrono::time_point<Clock> folly::fibers::TimeoutController::TimePoint |
Definition at line 36 of file TimeoutController.h.
|
explicit |
Definition at line 22 of file TimeoutController.cpp.
void folly::fibers::TimeoutController::cancel | ( | intptr_t | id | ) |
Definition at line 97 of file TimeoutController.cpp.
References folly::fibers::TimeoutController::TimeoutHandle::canceled, and bm::list.
intptr_t folly::fibers::TimeoutController::registerTimeout | ( | std::function< void()> | f, |
Duration | duration | ||
) |
Definition at line 25 of file TimeoutController.cpp.
References f, bm::list, folly::gen::move, nextTimeout_, now(), scheduleRun(), folly::detail::timeout, and timeoutHandleBuckets_.
void folly::fibers::TimeoutController::runTimeouts | ( | TimePoint | time | ) |
Definition at line 51 of file TimeoutController.cpp.
References bm::list, max, min, nextTimeout_, now(), scheduleRun(), folly::detail::distributed_mutex::time(), and timeoutHandleBuckets_.
|
private |
Definition at line 84 of file TimeoutController.cpp.
References loopController_, nextTimeout_, folly::detail::distributed_mutex::time(), and folly::fibers::LoopController::timedSchedule().
Referenced by registerTimeout(), and runTimeouts().
|
private |
Definition at line 68 of file TimeoutController.h.
Referenced by scheduleRun().
|
private |
Definition at line 67 of file TimeoutController.h.
Referenced by registerTimeout(), runTimeouts(), and scheduleRun().
|
private |
Definition at line 66 of file TimeoutController.h.
Referenced by registerTimeout(), and runTimeouts().