Fix and improve `asyncio.run()` docs (GH-16403)
diff --git a/Doc/glossary.rst b/Doc/glossary.rst
index e601e8b..9ce0357 100644
--- a/Doc/glossary.rst
+++ b/Doc/glossary.rst
@@ -247,7 +247,7 @@
Fortran contiguous arrays, the first index varies the fastest.
coroutine
- Coroutines is a more generalized form of subroutines. Subroutines are
+ Coroutines are a more generalized form of subroutines. Subroutines are
entered at one point and exited at another point. Coroutines can be
entered, exited, and resumed at many different points. They can be
implemented with the :keyword:`async def` statement. See also
diff --git a/Doc/library/asyncio-task.rst b/Doc/library/asyncio-task.rst
index 9f55a35..155887a 100644
--- a/Doc/library/asyncio-task.rst
+++ b/Doc/library/asyncio-task.rst
@@ -212,6 +212,8 @@
.. function:: run(coro, \*, debug=False)
+ Execute the :term:`coroutine` *coro* and return the result.
+
This function runs the passed coroutine, taking care of
managing the asyncio event loop, *finalizing asynchronous
generators*, and closing the threadpool.
@@ -225,10 +227,6 @@
the end. It should be used as a main entry point for asyncio
programs, and should ideally only be called once.
- Return a result of *coro* execution, or raise a :exc:`RuntimeError`
- if ``asyncio.run()`` is called from a running event loop, or a
- :exc:`ValueError` if *coro* is not a courutine.
-
Example::
async def main():