From: Guido van Rossum Date: Thu, 19 Nov 2015 21:33:34 +0000 (-0800) Subject: Issue #25593: Change semantics of EventLoop.stop(). (Merge 3.4->3.5) X-Git-Tag: v3.5.1rc1~19 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=82f9feaf1054599fdb37c6c414c7ec2e107ec2da;p=python Issue #25593: Change semantics of EventLoop.stop(). (Merge 3.4->3.5) --- 82f9feaf1054599fdb37c6c414c7ec2e107ec2da diff --cc Doc/library/asyncio-eventloop.rst index 279bc29636,96468ae567..dbe351d5f7 --- a/Doc/library/asyncio-eventloop.rst +++ b/Doc/library/asyncio-eventloop.rst @@@ -29,7 -29,16 +29,16 @@@ Run an event loo .. method:: BaseEventLoop.run_forever() - Run until :meth:`stop` is called. + Run until :meth:`stop` is called. If :meth:`stop` is called before + :meth:`run_forever()` is called, this polls the I/O selector once + with a timeout of zero, runs all callbacks scheduled in response to + I/O events (and those that were already scheduled), and then exits. + If :meth:`stop` is called while :meth:`run_forever` is running, + this will run the current batch of callbacks and then exit. Note + that callbacks scheduled by callbacks will not run in that case; + they will run the next time :meth:`run_forever` is called. + - .. versionchanged:: 3.4.4 ++ .. versionchanged:: 3.5.1 .. method:: BaseEventLoop.run_until_complete(future) @@@ -48,10 -57,10 +57,10 @@@ Stop running the event loop. - Every callback scheduled before :meth:`stop` is called will run. - Callbacks scheduled after :meth:`stop` is called will not run. - However, those callbacks will run if :meth:`run_forever` is called - again later. + This causes :meth:`run_forever` to exit at the next suitable + opportunity (see there for more details). + - .. versionchanged:: 3.4.4 ++ .. versionchanged:: 3.5.1 .. method:: BaseEventLoop.is_closed()