제한시간 지연

이 태스크 정보

다음 시퀀스 다이어그램은 지연되는 제한시간을 표시합니다.

지연을 스케줄링하려면 다음을 수행하십시오.

프로시저

  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()은 실제로 이벤트 플래그에 대한 스레드 차단을 일깨웁니다.

피드백