diff options
author | Sean B. Palmer <http://inamidst.com/sbp/> | 2008-03-02 15:50:05 +0000 |
---|---|---|
committer | Sean B. Palmer <http://inamidst.com/sbp/> | 2008-03-02 15:50:05 +0000 |
commit | 16ec61f4d657f23d1e2361f86aeece31c74b84c3 (patch) | |
tree | 1dc13b8f74eca5732ee1926a9750878aa4a1f80f | |
parent | f81eae836d70efa96847bf7060389755861a5dc2 (diff) | |
download | bot-16ec61f4d657f23d1e2361f86aeece31c74b84c3.tar.gz bot-16ec61f4d657f23d1e2361f86aeece31c74b84c3.tar.bz2 bot-16ec61f4d657f23d1e2361f86aeece31c74b84c3.zip |
Thread exiting elegance.
-rwxr-xr-x | __init__.py | 12 | ||||
-rwxr-xr-x | irc.py | 4 |
2 files changed, 12 insertions, 4 deletions
diff --git a/__init__.py b/__init__.py index 752fd02..16309f0 100755 --- a/__init__.py +++ b/__init__.py @@ -38,8 +38,12 @@ def run_phenny(config): Watcher() while True: - connect(config) - if not isinstance(delay, int): break + try: connect(config) + except KeyboardInterrupt: + sys.exit() + + if not isinstance(delay, int): + break warning = 'Warning: Disconnected. Reconnecting in %s seconds...' % delay print >> sys.stderr, warning @@ -47,7 +51,9 @@ def run_phenny(config): def run(config): t = threading.Thread(target=run_phenny, args=(config,)) - t.start() + if hasattr(t, 'run'): + t.run() + else: t.start() if __name__ == '__main__': print __doc__ @@ -65,7 +65,9 @@ class Bot(asynchat.async_chat): print >> sys.stderr, message, self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.connect((host, port)) - asyncore.loop() + try: asyncore.loop() + except KeyboardInterrupt: + sys.exit() def handle_connect(self): if self.verbose: |