'run callbacks on all expired timers
Called from the event thread
:return: next end time, or None'

def service_timeouts(self):

    queue = self._queue
    if self._new_timers:
        new_timers = self._new_timers
        while new_timers:
            heappush(queue, new_timers.pop())
    if queue:
        now = time.time()
        while queue:
            try:
                timer = queue[0][1]
                if timer.finish(now):
                    heappop(queue)
                else:
                    return timer.end
            except Exception:
                log.exception('Exception    while    servicing    timeout    callback:    ')
