X-Git-Url: https://jfr.im/git/erebus.git/blobdiff_plain/958b8081997f104efffcbc6b1f7bf2981956152d..2a44c0cde516cf63e24cc43ad940c040e92dfca1:/erebus.py diff --git a/erebus.py b/erebus.py index 5893cb8..4b33231 100644 --- a/erebus.py +++ b/erebus.py @@ -140,6 +140,7 @@ class Erebus(object): #singleton to pass around def __repr__(self): return "" % (self.name) def __init__(self, cfg): + self.mustquit = None self.starttime = time.time() self.cfg = cfg self.trigger = cfg.trigger @@ -223,10 +224,12 @@ class Erebus(object): #singleton to pass around return chan def poll(self): + timeout_seconds = 30 if self.potype == "poll": - return [fd for (fd, ev) in self.po.poll()] + pollres = self.po.poll(timeout_seconds * 1000) + return [fd for (fd, ev) in pollres] elif self.potype == "select": - return select.select(self.fdlist, [], [])[0] + return select.select(self.fdlist, [], [], timeout_seconds)[0] def connectall(self): for bot in self.bots.values(): @@ -329,6 +332,8 @@ def loop(): for fileno in poready: for line in main.fd(fileno).getdata(): main.fd(fileno).parse(line) + if main.mustquit is not None: + raise main.mustquit if __name__ == '__main__': try: os.rename('logfile', 'oldlogs/%s' % (time.time()))