aboutsummaryrefslogtreecommitdiff
path: root/src/IRCBot.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-06-06 23:23:46 +0100
committerGravatar jesopo2019-06-06 23:23:46 +0100
commit6d44f121930ed5f682849fcf8d175a7b62e34e9d (patch)
tree76edc5dd23eceb5a6ed2af3f6bb0c087b9e804e8 /src/IRCBot.py
parentuse trigger_write() instead of a raw .send(b"") (diff)
signature
Use .trigger (without triggering read/write threads) to call _check
Diffstat (limited to 'src/IRCBot.py')
-rw-r--r--src/IRCBot.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/IRCBot.py b/src/IRCBot.py
index fc56d109..8288bbc8 100644
--- a/src/IRCBot.py
+++ b/src/IRCBot.py
@@ -65,13 +65,14 @@ class Bot(object):
self._wtrigger_client.send(b"TRIGGER")
def trigger(self,
- func: typing.Optional[typing.Callable[[], typing.Any]]=None
- ) -> typing.Any:
+ func: typing.Optional[typing.Callable[[], typing.Any]]=None,
+ trigger_threads=True) -> typing.Any:
func = func or (lambda: None)
if utils.is_main_thread():
returned = func()
- self._trigger_both()
+ if trigger_threads:
+ self._trigger_both()
return returned
func_queue = queue.Queue(1) # type: queue.Queue[str]
@@ -88,7 +89,8 @@ class Bot(object):
type, returned = func_queue.get(block=True)
- self._trigger_both()
+ if trigger_threads:
+ self._trigger_both()
if type == TriggerResult.Exception:
raise returned
@@ -277,12 +279,13 @@ class Bot(object):
def _read_loop(self):
while self.running:
+ print("read loop")
if not self.servers:
self.running = False
self._event_queue.put(lambda: None)
break
- self._event_queue.put(self._check)
+ self.trigger(self._check, False)
events = self._read_poll.poll(self.get_poll_timeout())