public void update_event(long absus, waitable_event_handle eventHandle) { _workEngine.service.post(delegate() { if (_exited) { return; } if (null != eventHandle.steadyTimer._waitableNode) { _eventsQueue.Insert(_eventsQueue.ReNewNode(eventHandle.steadyTimer._waitableNode, absus, eventHandle)); } else { eventHandle.steadyTimer._waitableNode = _eventsQueue.Insert(absus, eventHandle); } long newAbsus = _eventsQueue.First.Key; if (newAbsus < _expireTime) { _expireTime = newAbsus; if (_utcMode) { long sleepTime = newAbsus * 10; sleepTime = sleepTime > 0 ? sleepTime : 0; SetWaitableTimer(_timerHandle, ref sleepTime, 0, 0, 0, 0); } else { long sleepTime = -(newAbsus - system_tick.get_tick_us()) * 10; sleepTime = sleepTime < 0 ? sleepTime : 0; SetWaitableTimer(_timerHandle, ref sleepTime, 0, 0, 0, 0); } } }); }
public void append_event(long absus, waitable_event_handle eventHandle) { _workEngine.service.post(delegate() { if (_exited) { return; } eventHandle.steadyTimer._waitableNode = _eventsQueue.Insert(absus, eventHandle); if (absus < _expireTime) { _expireTime = absus; if (_utcMode) { long sleepTime = absus * 10; sleepTime = sleepTime > 0 ? sleepTime : 0; SetWaitableTimer(_timerHandle, ref sleepTime, 0, 0, 0, 0); } else { long sleepTime = -(absus - system_tick.get_tick_us()) * 10; sleepTime = sleepTime < 0 ? sleepTime : 0; SetWaitableTimer(_timerHandle, ref sleepTime, 0, 0, 0, 0); } } }); }
public void append_event(long absus, waitable_event_handle eventHandle) { _workEngine.service.post(delegate() { if (_exited) { return; } eventHandle.steadyTimer._waitableNode = _eventsQueue.Insert(absus, eventHandle); if (absus < _expireTime) { _expireTime = absus; set_timer(); } }); }
public void update_event(long absus, waitable_event_handle eventHandle) { _workEngine.service.post(delegate() { if (_exited) { return; } if (null != eventHandle.steadyTimer._waitableNode) { _eventsQueue.Insert(_eventsQueue.ReNewNode(eventHandle.steadyTimer._waitableNode, absus, eventHandle)); } else { eventHandle.steadyTimer._waitableNode = _eventsQueue.Insert(absus, eventHandle); } long newAbsus = _eventsQueue.First.Key; if (newAbsus < _expireTime) { _expireTime = newAbsus; set_timer(); } }); }