asyncio: Document EventLoop.close().

This commit is contained in:
Guido van Rossum 2013-11-01 14:19:04 -07:00
parent 2b57016458
commit e3f52ef067
3 changed files with 20 additions and 0 deletions

View file

@ -186,6 +186,11 @@ class BaseEventLoop(events.AbstractEventLoop):
self.call_soon(_raise_stop_error)
def close(self):
"""Close the event loop.
This clears the queues and shuts down the executor,
but does not wait for the executor to finish.
"""
self._ready.clear()
self._scheduled.clear()
executor = self._default_executor

View file

@ -137,6 +137,17 @@ class AbstractEventLoop:
"""Return whether the event loop is currently running."""
raise NotImplementedError
def close(self):
"""Close the loop.
The loop should not be running.
This is idempotent and irreversible.
No other methods should be called after this one.
"""
raise NotImplementedError
# Methods scheduling callbacks. All these return Handles.
def call_soon(self, callback, *args):
@ -214,6 +225,8 @@ class AbstractEventLoop:
family=0, proto=0, flags=0):
raise NotImplementedError
# Pipes and subprocesses.
def connect_read_pipe(self, protocol_factory, pipe):
"""Register read pipe in eventloop.

View file

@ -1471,6 +1471,8 @@ class AbstractEventLoopTests(unittest.TestCase):
NotImplementedError, loop.stop)
self.assertRaises(
NotImplementedError, loop.is_running)
self.assertRaises(
NotImplementedError, loop.close)
self.assertRaises(
NotImplementedError, loop.call_later, None, None)
self.assertRaises(