del_timer_sync不能睡眠的原因

简介:
这个函数不能在中断中被调用的原因就是防止删除timer的时候忙等,怎么忙等呢?在try_to_del_timer_sync出现之前,如果中断打断了正在执行的timer,那么中断中执行del_timer_sync的时候就会永远忙等下去,2.6.9中具体就是: 
static inline void __run_timers(tvec_base_t *base) 

... 



 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1273495

相关文章
|
内存技术
Egret的TimerEvent.TIMER和Event.ENTER_FRAME的区别
Egret的TimerEvent.TIMER和Event.ENTER_FRAME的区别
73 0
|
JavaScript
彻底理解sync的用法
彻底理解sync的用法
173 0
|
存储 缓存 Go
原来sync.Once还能这么用
原来sync.Once还能这么用
159 0
原来sync.Once还能这么用
|
程序员 Go
你真的了解 sync.Once 吗
你真的了解 sync.Once 吗
179 0
|
缓存 安全 算法
Go基础:channel、定时器、select、锁、sync、atomic
Go基础:channel、定时器、select、锁、sync、atomic
312 0
Go基础:channel、定时器、select、锁、sync、atomic
|
消息中间件 Java C#
C# 三个Timer
C# 三个Timer
287 0
C# 三个Timer
|
安全 Java Go
sync
sync包有以下几个内容: (1)sync.Pool 临时对象池 (2)sync.Mutex 互斥锁 (3)sync.RWMutex 读写互斥锁 (4)sync.WaitGroup 组等待 (5)sync.Cond 条件等待 (6)sync.Once 单次执行 一、临时对象池 Pool可以用来存储临时对象,其实原理就是这个对象池指向对象变量,以防没有变量指向对象时,被GC所回收。
1423 0