CEPH中定时器使用
2017-06-09 本文已影响30人
折水
CEPH中类SafeTimer实现了定时器的功能,关于SafeTimer有很多介绍,但是关于SafeTimer使用,在网上没有找到相关的资料,下面以在OSD模块中添加新的不要锁定的定时器,在LOG中定时打印一条LOG日志。
(1)在对应的OSD.h中的定义
定义新的定时器,包含一个锁和一个定时器
![](https://img.haomeiwen.com/i5949654/3bd83ce7d55b640a.png)
新建一个类,用户执行定时器的回调函数
![](https://img.haomeiwen.com/i5949654/73395b7d9559ad46.png)
声明回调函数
![](https://img.haomeiwen.com/i5949654/68d16c17c1162118.png)
(2)在对应的.cc文件中
初始化锁及定时器
![](https://img.haomeiwen.com/i5949654/3f89191bb0a78413.png)
启动初始化定时器
![](https://img.haomeiwen.com/i5949654/c80ad605505af24c.png)
如果不需要 全局锁,这在加{},这样在定时器的锁只在局部的作用域生效
![](https://img.haomeiwen.com/i5949654/e1b7c5fd4de65bce.png)
结束时停止定时器
![](https://img.haomeiwen.com/i5949654/00a686a8fac144f4.png)
定义定时器的回调函数
![](https://img.haomeiwen.com/i5949654/20071390a6a3e0b1.png)