From d9de4fdec23b9334125ce5461f3a3d00bb917b59 Mon Sep 17 00:00:00 2001 From: jesopo Date: Thu, 6 Jun 2019 21:03:25 +0100 Subject: Lambda scopes are irritating --- src/IRCBot.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/IRCBot.py b/src/IRCBot.py index 8b6d19b1..ffa6ad97 100644 --- a/src/IRCBot.py +++ b/src/IRCBot.py @@ -248,6 +248,11 @@ class Bot(object): item = self._event_queue.get(block=True, timeout=None) item() + def _post_send_factory(self, server, lines): + return lambda: server._post_send(lines) + def _post_read_factory(self, server, lines): + return lambda: server._post_read(lines) + def _write_loop(self): while self.running: if not self.servers: @@ -273,7 +278,8 @@ class Bot(object): except: self.log.error("Failed to write to %s", [str(server)]) raise - self._event_queue.put(lambda: server._post_send(lines)) + self._event_queue.put(self._post_send_factory(server, + lines)) def _read_loop(self): while self.running: @@ -310,7 +316,8 @@ class Bot(object): server.disconnect() continue - self._event_queue.put(lambda: server._post_read(lines)) + self._event_queue.put(self._post_read_factory(server, + lines)) elif event & select.EPOLLHUP: self.log.warn("Recieved EPOLLHUP for %s", [str(server)]) server.disconnect() -- cgit v1.3.1-10-gc9f91