python3/backport-36356-Fix-memory-leak-in-_asynciomodule.c-GH-165.patch

46 lines
1.3 KiB
Diff

From 46bd8737ab2ea15d644bfde42f1c24504259442e Mon Sep 17 00:00:00 2001
From: "Miss Islington (bot)"
<31488909+miss-islington@users.noreply.github.com>
Date: Mon, 7 Oct 2019 09:38:00 -0700
Subject: [PATCH] bpo-36356: Fix memory leak in _asynciomodule.c (GH-16598)
(cherry picked from commit 321def805abc5b7c92c7e90ca90cb2434fdab855)
Co-authored-by: Ben Harper <btharper1221@gmail.com>
Reference:https://github.com/python/cpython/commit/13915a3100608f011b29da2f3716c990f523b631
Conflict:NA
---
Modules/_asynciomodule.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index 6986802..4828e1c 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;
@@ -3244,6 +3245,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) {
--
2.27.0