Timer queue is now tuple instead of using __lt__ on objects
This commit is contained in:
@@ -904,9 +904,6 @@ class Timer(object):
|
|||||||
if timeout < 0:
|
if timeout < 0:
|
||||||
self.callback()
|
self.callback()
|
||||||
|
|
||||||
def __lt__(self, other):
|
|
||||||
return self.end < other.end
|
|
||||||
|
|
||||||
def cancel(self):
|
def cancel(self):
|
||||||
self.canceled = True
|
self.canceled = True
|
||||||
|
|
||||||
@@ -931,7 +928,7 @@ class TimerManager(object):
|
|||||||
"""
|
"""
|
||||||
called from client thread with a Timer object
|
called from client thread with a Timer object
|
||||||
"""
|
"""
|
||||||
self._new_timers.append(timer)
|
self._new_timers.append((timer.end, timer))
|
||||||
|
|
||||||
def service_timeouts(self):
|
def service_timeouts(self):
|
||||||
"""
|
"""
|
||||||
@@ -942,12 +939,11 @@ class TimerManager(object):
|
|||||||
queue = self._queue
|
queue = self._queue
|
||||||
new_timers = self._new_timers
|
new_timers = self._new_timers
|
||||||
while self._new_timers:
|
while self._new_timers:
|
||||||
t = new_timers.pop()
|
heappush(queue, new_timers.pop())
|
||||||
heappush(queue, t)
|
|
||||||
now = time.time()
|
now = time.time()
|
||||||
while queue:
|
while queue:
|
||||||
try:
|
try:
|
||||||
timer = queue[0]
|
timer = queue[0][1]
|
||||||
if timer.finish(now):
|
if timer.finish(now):
|
||||||
heappop(queue)
|
heappop(queue)
|
||||||
else:
|
else:
|
||||||
@@ -958,14 +954,14 @@ class TimerManager(object):
|
|||||||
@property
|
@property
|
||||||
def next_timeout(self):
|
def next_timeout(self):
|
||||||
try:
|
try:
|
||||||
return self._queue[0].end
|
return self._queue[0][0]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def next_offset(self):
|
def next_offset(self):
|
||||||
try:
|
try:
|
||||||
next_end = self._queue[0].end
|
next_end = self._queue[0][0]
|
||||||
return next_end - time.time()
|
return next_end - time.time()
|
||||||
except IndexError:
|
except IndexError:
|
||||||
pass
|
pass
|
||||||
|
|||||||
Reference in New Issue
Block a user