11870: minor update
[arvados.git] / services / nodemanager / arvnodeman / timedcallback.py
index a1df8ec17bcaa5956b0404e75e00dc295652476a..c020a7ef033cf645f77675123f22dfb1378963ab 100644 (file)
@@ -18,19 +18,20 @@ class TimedCallBackActor(actor_class):
     """
     def __init__(self, max_sleep=1):
         super(TimedCallBackActor, self).__init__()
-        self._proxy = self.actor_ref.proxy()
+        self._proxy = self.actor_ref.tell_proxy()
         self.messages = []
         self.max_sleep = max_sleep
 
     def schedule(self, delivery_time, receiver, *args, **kwargs):
+        if not self.messages:
+            self._proxy.deliver()
         heapq.heappush(self.messages, (delivery_time, receiver, args, kwargs))
-        self._proxy.deliver()
 
     def deliver(self):
         if not self.messages:
-            return None
+            return
         til_next = self.messages[0][0] - time.time()
-        if til_next < 0:
+        if til_next <= 0:
             t, receiver, args, kwargs = heapq.heappop(self.messages)
             try:
                 receiver(*args, **kwargs)