.. _asyncio-handle-blocking:
-Handle correctly blocking functions
+Handle blocking functions correctly
-----------------------------------
Blocking functions should not be called directly. For example, if a function
The event loop is the central execution device provided by :mod:`asyncio`.
It provides multiple facilities, amongst which:
-* Registering, executing and cancelling delayed calls (timeouts)
+* Registering, executing and cancelling delayed calls (timeouts).
* Creating client and server :ref:`transports <asyncio-transport>` for various
- kinds of communication
+ kinds of communication.
* Launching subprocesses and the associated :ref:`transports <asyncio-transport>`
- for communication with an external program
+ for communication with an external program.
-* Delegating costly function calls to a pool of threads
+* Delegating costly function calls to a pool of threads.
Event loop functions
--------------------
* coroutines and tasks based on ``yield from`` (:PEP:`380`), to help write
concurrent code in a sequential fashion;
-* cancellation support for Futures and coroutines;
+* cancellation support for :class:`Future`\s and coroutines;
* :ref:`synchronization primitives <asyncio-sync>` for use between coroutines in
a single thread, mimicking those in the :mod:`threading` module;