| 80 | } |
| 81 | |
| 82 | static void timer_callback(int, ACL_EVENT* event, void* ctx) |
| 83 | { |
| 84 | event_timer* timer = (event_timer*) ctx; |
| 85 | |
| 86 | // ������ʱ���е����ж�ʱ���� |
| 87 | acl_int64 next_delay = timer->trigger(); |
| 88 | |
| 89 | // �����ʱ���е�����Ϊ�ջ�δ���ö�ʱ�����ظ�ʹ�ã���ɾ����ʱ�� |
| 90 | if (timer->empty() || !timer->keep_timer()) { |
| 91 | // ɾ����ʱ�� |
| 92 | acl_event_cancel_timer(event, timer_callback, timer); |
| 93 | timer->destroy(); |
| 94 | return; |
| 95 | } |
| 96 | |
| 97 | // ��������ظ�ʹ�ö�ʱ���Ҷ�ʱ���е�����ǿգ����ٴ����øö�ʱ�� |
| 98 | |
| 99 | // ��Ҫ���ö�ʱ���ĵ���ʱ��� |
| 100 | acl_event_request_timer(event, timer_callback, timer, |
| 101 | next_delay < 0 ? 0 : next_delay, timer->keep_timer() ? 1 : 0); |
| 102 | } |
| 103 | |
| 104 | void master_base::set_event(ACL_EVENT* event) |
| 105 | { |
no test coverage detected
searching dependent graphs…