Document how Client.run should be the last function to call.

This commit is contained in:
Rapptz 2016-01-08 13:29:33 -05:00
parent 777b5a09e2
commit 6d5175ad9a
2 changed files with 14 additions and 0 deletions

View File

@ -759,7 +759,14 @@ class Client:
# cancel all tasks lingering
finally:
loop.close()
Warning
--------
This function must be the last function to call due to the fact that it
is blocking. That means that registration of events or anything being
called after this function call will not execute until it returns.
"""
try:
self.loop.run_until_complete(self.start(email, password))
except KeyboardInterrupt:

View File

@ -262,6 +262,13 @@ After:
client.run('email', 'password')
.. warning::
Like in the older ``Client.run`` function, the newer one must be the one of
the last functions to call. This is because the function is **blocking**. Registering
events or doing anything after :meth:`Client.run` will not execute until the function
returns.
This is a utility function that abstracts the event loop for you. There's no need for
the run call to be blocking and out of your control. Indeed, if you want control of the
event loop then doing so is quite straightforward: