Skip to content

Commit ac2c7de

Browse files
committed
Shut down event loop after disconnecting.
1 parent 311c723 commit ac2c7de

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

pydle/client.py

+6
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def __init__(self, nickname, fallback_nicknames=[], username=None, realname=None
4545
self.username = username or nickname.lower()
4646
self.realname = realname or nickname
4747
self.eventloop = None
48+
self.own_eventloop = True
4849
self._reset_connection_attributes()
4950
self._reset_attributes()
5051

@@ -95,6 +96,7 @@ def connect(self, hostname=None, port=None, reconnect=False, eventloop=None, **k
9596
self.eventloop = eventloop
9697
elif not self.eventloop:
9798
self.eventloop = async.EventLoop()
99+
self.own_eventloop = not eventloop
98100

99101
# Reset attributes and connect.
100102
if not reconnect:
@@ -121,6 +123,10 @@ def disconnect(self, expected=True):
121123
# Callback.
122124
self.on_disconnect(expected)
123125

126+
# Shut down event loop.
127+
if expected and self.own_eventloop:
128+
self.connection.stop()
129+
124130
# Reset any attributes.
125131
self._reset_attributes()
126132

pydle/connection.py

+4
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,10 @@ def run_forever(self):
223223
self.eventloop.run()
224224
self.remove_handlers()
225225

226+
def stop(self):
227+
""" Stop event loop. """
228+
self.eventloop.schedule(lambda: self.eventloop.stop())
229+
226230

227231
## Handler setup and teardown.
228232

0 commit comments

Comments
 (0)