延迟超时
关于此任务
以下时序图显示一个延迟超时。
要调度延迟:
过程
- OMDelay 构造函数会创建延迟。
- set 方法将超时请求委派给 OMTimerManager。
- 延迟会等待超时结束,届时将调用 timeTickCbk 方法 (private)。timeTickCbk 方法递增累积或当前时间 m_Time。
- timeTickCbk 方法调用 post (private) 从堆获取下一个调度的超时请求,修剪堆并将超时移到到期列表。
- action 将到期超时请求发送给相关线程,该请求随后在此线程中被插入线程的事件队列。由于超时是延迟 (isNotDelay = False),线程就是接收方。
- action 方法调用 getDestination,后者会返回 destination 属性的当前值(OMReactive 实例)。
- action 方法调用 wakeup,后者在延迟时间到期后恢复处理。
- signal() 实际上唤醒对事件标志的线程阻塞。