Issue #28428: Rename _futures module to _asyncio.

It will have more speedup functions or classes other than asyncio.Future.
diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py
index 7c5b1aa..87ae30a 100644
--- a/Lib/asyncio/futures.py
+++ b/Lib/asyncio/futures.py
@@ -432,18 +432,18 @@
 
 
 try:
-    import _futures
+    import _asyncio
 except ImportError:
     pass
 else:
-    _futures._init_module(
+    _asyncio._init_module(
         traceback.extract_stack,
         events.get_event_loop,
         _future_repr_info,
         InvalidStateError,
         CancelledError)
 
-    Future = _futures.Future
+    Future = _asyncio.Future
 
 
 def _chain_future(source, destination):
diff --git a/Modules/Setup.dist b/Modules/Setup.dist
index 3211bef..8b87fc8 100644
--- a/Modules/Setup.dist
+++ b/Modules/Setup.dist
@@ -181,7 +181,7 @@
 #_datetime _datetimemodule.c	# datetime accelerator
 #_bisect _bisectmodule.c	# Bisection algorithms
 #_heapq _heapqmodule.c	# Heap queue algorithm
-#_futures _futuresmodule.c  # Fast asyncio Future
+#_asyncio _asynciomodule.c  # Fast asyncio Future
 
 #unicodedata unicodedata.c    # static Unicode character database
 
diff --git a/Modules/_futuresmodule.c b/Modules/_asynciomodule.c
similarity index 96%
rename from Modules/_futuresmodule.c
rename to Modules/_asynciomodule.c
index 3e91a3c..ce576e5 100644
--- a/Modules/_futuresmodule.c
+++ b/Modules/_asynciomodule.c
@@ -6,8 +6,8 @@
 _Py_IDENTIFIER(call_soon);
 
 
-/* State of the _futures module */
-static int _futuremod_ready;
+/* State of the _asyncio module */
+static int _asynciomod_ready;
 static PyObject *traceback_extract_stack;
 static PyObject *asyncio_get_event_loop;
 static PyObject *asyncio_repr_info_func;
@@ -21,11 +21,11 @@
 
 /* make sure module state is initialized and ready to be used. */
 static int
-_FuturesMod_EnsureState(void)
+_AsyncioMod_EnsureState(void)
 {
-    if (!_futuremod_ready) {
+    if (!_asynciomod_ready) {
         PyErr_SetString(PyExc_RuntimeError,
-                        "_futures module wasn't properly initialized");
+                        "_asyncio module wasn't properly initialized");
         return -1;
     }
     return 0;
@@ -108,7 +108,7 @@
     PyObject *res = NULL;
     _Py_IDENTIFIER(get_debug);
 
-    if (_FuturesMod_EnsureState()) {
+    if (_AsyncioMod_EnsureState()) {
         return -1;
     }
 
@@ -218,7 +218,7 @@
 static PyObject *
 FutureObj_exception(FutureObj *fut, PyObject *arg)
 {
-    if (_FuturesMod_EnsureState()) {
+    if (_AsyncioMod_EnsureState()) {
         return NULL;
     }
 
@@ -251,7 +251,7 @@
 static PyObject *
 FutureObj_set_result(FutureObj *fut, PyObject *res)
 {
-    if (_FuturesMod_EnsureState()) {
+    if (_AsyncioMod_EnsureState()) {
         return NULL;
     }
 
@@ -282,7 +282,7 @@
 {
     PyObject *exc_val = NULL;
 
-    if (_FuturesMod_EnsureState()) {
+    if (_AsyncioMod_EnsureState()) {
         return NULL;
     }
 
@@ -735,7 +735,7 @@
 
 static PyTypeObject FutureType = {
     PyVarObject_HEAD_INIT(0, 0)
-    "_futures.Future",
+    "_asyncio.Future",
     sizeof(FutureObj),                       /* tp_basicsize */
     .tp_dealloc = FutureObj_dealloc,
     .tp_as_async = &FutureType_as_async,
@@ -898,7 +898,7 @@
 
 static PyTypeObject FutureIterType = {
     PyVarObject_HEAD_INIT(0, 0)
-    "_futures.FutureIter",
+    "_asyncio.FutureIter",
     sizeof(futureiterobject),                /* tp_basicsize */
     0,                                       /* tp_itemsize */
     (destructor)FutureIter_dealloc,          /* tp_dealloc */
@@ -949,7 +949,7 @@
 
 /*********************** Module **************************/
 
-PyDoc_STRVAR(module_doc, "Fast asyncio.Future implementation.\n");
+PyDoc_STRVAR(module_doc, "asyncio speedups.\n");
 
 PyObject *
 _init_module(PyObject *self, PyObject *args)
@@ -984,24 +984,24 @@
     Py_INCREF(cancelledError);
     Py_XSETREF(asyncio_CancelledError, cancelledError);
 
-    _futuremod_ready = 1;
+    _asynciomod_ready = 1;
 
     Py_RETURN_NONE;
 }
 
 
-static struct PyMethodDef futuresmod_methods[] = {
+static struct PyMethodDef asynciomod_methods[] = {
     {"_init_module", _init_module, METH_VARARGS, NULL},
     {NULL, NULL}
 };
 
 
-static struct PyModuleDef _futuresmodule = {
+static struct PyModuleDef _asynciomodule = {
     PyModuleDef_HEAD_INIT,      /* m_base */
-    "_futures",                 /* m_name */
+    "_asyncio",                 /* m_name */
     module_doc,                 /* m_doc */
     -1,                         /* m_size */
-    futuresmod_methods,         /* m_methods */
+    asynciomod_methods,         /* m_methods */
     NULL,                       /* m_slots */
     NULL,                       /* m_traverse */
     NULL,                       /* m_clear */
@@ -1010,7 +1010,7 @@
 
 
 PyMODINIT_FUNC
-PyInit__futures(void)
+PyInit__asyncio(void)
 {
     if (PyType_Ready(&FutureType) < 0) {
         return NULL;
@@ -1019,7 +1019,7 @@
         return NULL;
     }
 
-    PyObject *m = PyModule_Create(&_futuresmodule);
+    PyObject *m = PyModule_Create(&_asynciomodule);
     if (m == NULL) {
         return NULL;
     }
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index 1507adb..aa6ba74 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -213,6 +213,7 @@
     <ClInclude Include="..\Python\wordcode_helpers.h" />
   </ItemGroup>
   <ItemGroup>
+    <ClCompile Include="..\Modules\_asynciomodule.c" />
     <ClCompile Include="..\Modules\_bisectmodule.c" />
     <ClCompile Include="..\Modules\_blake2\blake2module.c" />
     <ClCompile Include="..\Modules\_blake2\blake2b_impl.c" />
@@ -221,7 +222,6 @@
     <ClCompile Include="..\Modules\_collectionsmodule.c" />
     <ClCompile Include="..\Modules\_csv.c" />
     <ClCompile Include="..\Modules\_functoolsmodule.c" />
-    <ClCompile Include="..\Modules\_futuresmodule.c" />
     <ClCompile Include="..\Modules\_heapqmodule.c" />
     <ClCompile Include="..\Modules\_json.c" />
     <ClCompile Include="..\Modules\_localemodule.c" />
diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters
index ef24333..a45b9d9 100644
--- a/PCbuild/pythoncore.vcxproj.filters
+++ b/PCbuild/pythoncore.vcxproj.filters
@@ -446,6 +446,9 @@
     </ClInclude>
   </ItemGroup>
   <ItemGroup>
+    <ClCompile Include="..\Modules\_asynciomodule.c">
+      <Filter>Modules</Filter>
+    </ClCompile>
     <ClCompile Include="..\Modules\_bisectmodule.c">
       <Filter>Modules</Filter>
     </ClCompile>
@@ -470,9 +473,6 @@
     <ClCompile Include="..\Modules\_functoolsmodule.c">
       <Filter>Modules</Filter>
     </ClCompile>
-    <ClCompile Include="..\Modules\_futuresmodule.c">
-      <Filter>Modules</Filter>
-    </ClCompile>
     <ClCompile Include="..\Modules\_heapqmodule.c">
       <Filter>Modules</Filter>
     </ClCompile>
diff --git a/setup.py b/setup.py
index 1d4a7f8..b54ef81 100644
--- a/setup.py
+++ b/setup.py
@@ -656,8 +656,8 @@
                                depends=['unicodedata_db.h', 'unicodename_db.h']) )
         # _opcode module
         exts.append( Extension('_opcode', ['_opcode.c']) )
-        # Fast asyncio Future implementation
-        exts.append( Extension("_futures", ["_futuresmodule.c"]) )
+        # asyncio speedups
+        exts.append( Extension("_asyncio", ["_asynciomodule.c"]) )
 
         # Modules with some UNIX dependencies -- on by default:
         # (If you have a really backward UNIX, select and socket may not be