Go to the documentation of this file.
19 #ifndef GRPC_CORE_LIB_EVENT_ENGINE_IOMGR_ENGINE_TIMER_H
20 #define GRPC_CORE_LIB_EVENT_ENGINE_IOMGR_ENGINE_TIMER_H
31 #include "absl/base/thread_annotations.h"
32 #include "absl/types/optional.h"
42 namespace iomgr_engine {
67 virtual void Kick() = 0;
150 std::vector<experimental::EventEngine::Closure*>*
out)
TimeAveragedStats stats ABSL_GUARDED_BY(mu)
grpc_event_engine::experimental::EventEngine::TaskHandle task_handle
absl::optional< std::vector< experimental::EventEngine::Closure * > > TimerCheck(grpc_core::Timestamp *next)
Timer * PopOne(grpc_core::Timestamp now) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu)
TimerList(TimerListHost *host)
TimerList & operator=(const TimerList &)=delete
const std::unique_ptr< Shard *[]> shard_queue_ ABSL_GUARDED_BY(mu_)
void PopTimers(grpc_core::Timestamp now, grpc_core::Timestamp *new_min_deadline, std::vector< experimental::EventEngine::Closure * > *out) ABSL_LOCKS_EXCLUDED(mu)
#define ABSL_EXCLUSIVE_LOCKS_REQUIRED(...)
grpc_core::Timestamp ComputeMinDeadline() ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu)
struct Timer * hash_table_next
TimerListHost *const host_
std::atomic< uint64_t > min_timer_
bool TimerCancel(Timer *timer) GRPC_MUST_USE_RESULT
const std::unique_ptr< Shard[]> shards_
void NoteDeadlineChange(Shard *shard) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_)
experimental::EventEngine::Closure * closure
void TimerInit(Timer *timer, grpc_core::Timestamp deadline, experimental::EventEngine::Closure *closure)
bool RefillHeap(grpc_core::Timestamp now) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu)
#define ABSL_LOCKS_EXCLUDED(...)
AllocList * next[kMaxLevel]
void SwapAdjacentShardsInQueue(uint32_t first_shard_queue_index) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_)
virtual grpc_core::Timestamp Now()=0
std::vector< experimental::EventEngine::Closure * > FindExpiredTimers(grpc_core::Timestamp now, grpc_core::Timestamp *next)
grpc_core::Mutex checker_mu_
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:38