]> granicus.if.org Git - python/commitdiff
bpo-36356: Fix memory leak in _asynciomodule.c (GH-16598)
authorBen Harper <btharper1221@gmail.com>
Mon, 7 Oct 2019 16:19:58 +0000 (12:19 -0400)
committerYury Selivanov <yury@magic.io>
Mon, 7 Oct 2019 16:19:58 +0000 (12:19 -0400)
Modules/_asynciomodule.c

index b67afd41768fe5c8968d17d3ff9078f803bd5086..89b2fdea0f6321b9731090b752c4533a9021d2a0 100644 (file)
@@ -33,6 +33,7 @@ static PyObject *asyncio_task_repr_info_func;
 static PyObject *asyncio_InvalidStateError;
 static PyObject *asyncio_CancelledError;
 static PyObject *context_kwname;
+static int module_initialized;
 
 static PyObject *cached_running_holder;
 static volatile uint64_t cached_running_holder_tsid;
@@ -3247,6 +3248,12 @@ module_init(void)
     if (asyncio_mod == NULL) {
         goto fail;
     }
+    if (module_initialized != 0) {
+        return 0;
+    } 
+    else {
+        module_initialized = 1;
+    }
 
     current_tasks = PyDict_New();
     if (current_tasks == NULL) {