diff options
| author | 2019-06-23 19:00:37 +0100 | |
|---|---|---|
| committer | 2019-06-23 19:00:37 +0100 | |
| commit | dd1df4dc054e576f30066c92529be66c38c4b006 (patch) | |
| tree | 5b89a257ad75c0205fe0f6497362b2264e852121 | |
| parent | shift _check() call to event loop function so read_loop needn't call trigger() (diff) | |
| signature | ||
move get_poll_timeout() to event loop now that it is the one calling _check
| -rw-r--r-- | src/IRCBot.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/IRCBot.py b/src/IRCBot.py index 0077e8ea..8b3548e5 100644 --- a/src/IRCBot.py +++ b/src/IRCBot.py @@ -207,7 +207,7 @@ class Bot(object): timeouts.append(self.next_read_timeout()) timeouts.append(self.cache.next_expiration()) min_secs = min([timeout for timeout in timeouts if not timeout == None]) - return min_secs*1000 # return milliseconds + return min_secs def disconnect(self, server: IRCServer.Server): del self.servers[server.fileno()] @@ -277,7 +277,13 @@ class Bot(object): self._check() - item = self._event_queue.get(block=True, timeout=None) + try: + item = self._event_queue.get(block=True, + timeout=self.get_poll_timeout()) + except queue.Empty: + # caused by timeout being hit. loop back round because a _check + # call is due + continue if item.type == TriggerEventType.Action: try: @@ -336,7 +342,7 @@ class Bot(object): def _read_loop(self): while self.running: - events = self._read_poll.poll(self.get_poll_timeout()) + events = self._read_poll.poll() for fd, event in events: |
