changeset 24:af9c69ad5eba

Server: Fix "stumbling"
author Lewin Bormann <lbo@spheniscida.de>
date Fri, 01 Mar 2019 22:57:19 +0100
parents 2093abdd7b7f
children 9099f61b37d6
files server/server.py
diffstat 1 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/server/server.py	Fri Mar 01 22:50:45 2019 +0100
+++ b/server/server.py	Fri Mar 01 22:57:19 2019 +0100
@@ -166,24 +166,24 @@
 
         def run(self):
             interval = int(self.interval or 500)
-            newinterval = interval
+            nextinterval = interval
 
             p = zmq.Poller()
             p.register(self.interactivesocket, zmq.POLLIN)
             while True:
                 before = time.clock_gettime_ns(time.CLOCK_MONOTONIC)
-                events = p.poll(newinterval)
+                events = p.poll(nextinterval)
 
                 if len(events) > 0:
                     self.handle_calls(events)
-                    diff = time.clock_gettime_ns(time.CLOCK_MONOTONIC) - before
-                    newinterval = interval - diff if diff < newinterval else interval
-                    newinterval /= 1e6
+                    diff = (time.clock_gettime_ns(time.CLOCK_MONOTONIC) - before) / 1e6
+                    remaining = interval - diff
+                    nextinterval = remaining if remaining > 0 else 0
                 else:  # Timeout
                     nextdata = self._stocks.generate()
                     print("DEBUG: {}".format(nextdata))
                     self.pubsocket.send_string(nextdata.serialize())
-                    newinterval = interval
+                    nextinterval = interval
 
         # Handle callbacks from clients.
         def handle_calls(self, events):