summaryrefslogtreecommitdiff
path: root/Modules
diff options
context:
space:
mode:
authorBen Harper <btharper1221@gmail.com>2019-10-07 12:19:58 -0400
committerYury Selivanov <yury@magic.io>2019-10-07 12:19:58 -0400
commit321def805abc5b7c92c7e90ca90cb2434fdab855 (patch)
tree11df4423b2f85dc7043ef9cb61a048b03b945551 /Modules
parent303475e87372aacb17990802538e440735a69525 (diff)
downloadcpython-git-321def805abc5b7c92c7e90ca90cb2434fdab855.tar.gz
bpo-36356: Fix memory leak in _asynciomodule.c (GH-16598)
Diffstat (limited to 'Modules')
-rw-r--r--Modules/_asynciomodule.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index b67afd4176..89b2fdea0f 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -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) {