【sylar-webserver】7 定时器模块

文章目录

设计

belongs to 1 1 manages many <<enable_shared_from_this>> Timer -uint64_t m_ms -uint64_t m_next -bool m_recurring -TimerManager* m_manager +struct Comparator -std::function m_cb +bool cancel() +bool refresh() +bool reset(uint64_t ms, bool from_now) -Timer(uint64_t ms, std::function cb, bool recurring, TimerManager* manager) -Timer(uint64_t next) TimerManager -RWMutexType m_mutex -std::set m_timers -bool m_tickled -uint64_t m_previouseTime +TimerManager() +~TimerManager() +Timer::ptr addTimer(uint64_t ms, std::function cb, bool recurring = false) +Timer::ptr addConditionTimer(uint64_t ms, std::function cb, std::weak_ptr weak_cond, bool recurring = false) +uint64_t getNextTimer() +void listExpiredCb(std::vector>& cbs) +bool hasTimer() +bool detectClockRollover(uint64_t now_ms) #virtual void onTimerInsertedAtFront() #void addTimer(Timer::ptr val, RWMutexType::WriteLock& lock) enable_shared_from_this
Main iom timer_callback g_logger s_timer test_timer() addTimer(1000, timer_callback, true) Create and start recurring timer (1000ms) addTimer(500, lambda) Log "500ms timeout" after 500ms addTimer(5000, lambda) Log "5000ms timeout" after 5000ms timer_callback() Log "timer callback, timeout = {timeout}" Reset timer with new timeout (+1000ms) Cancel timer Stop recurring execution alt timeout \>= 5000 loop Recurring Timer Execution Main iom timer_callback g_logger s_timer

知识点

相关推荐
是潮汕的灿灿展吖5 小时前
Centos离线部署nfs操作
linux·运维·centos
Kina_C5 小时前
Apache HTTP Server 安装、配置与高级功能详解
linux·http·apache
小保CPP5 小时前
OpenCV C++将多张图像合并为webp动图
c++·人工智能·opencv·计算机视觉
治愈系贝壳5 小时前
ARM --- day 6 时钟
linux·arm开发·学习
Molesidy6 小时前
【GUI】【AWTK】基于开阳平台的GUI界面设计环境搭建
linux·gui·awtk
乐观勇敢坚强的老彭6 小时前
信奥C++一维数组笔记
开发语言·c++·笔记
码上有光6 小时前
异常和智能指针
java·大数据·c++·servlet·异常·智能指针
RisunJan6 小时前
Linux命令-semanage(SELinux 策略管理)
linux·运维·服务器
王维同学6 小时前
[原创][Windows C++]Explorer Shell 扩展、图标覆盖与 COM 服务器定位
c++·windows·注册表
流浪0016 小时前
Linux系统篇 21:文件(五)——动静态库、ELF 底层原理全解
linux·运维·服务器