aboutsummaryrefslogtreecommitdiff
path: root/src/IRCBot.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-06-23 19:00:37 +0100
committerGravatar jesopo2019-06-23 19:00:37 +0100
commitdd1df4dc054e576f30066c92529be66c38c4b006 (patch)
tree5b89a257ad75c0205fe0f6497362b2264e852121 /src/IRCBot.py
parentshift _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
Diffstat (limited to 'src/IRCBot.py')
-rw-r--r--src/IRCBot.py12
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: