延迟超时

关于此任务

以下时序图显示一个延迟超时。

要调度延迟:

过程

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

反馈