Mercurial > lbo > hg > stex
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):