task: Fix memory leak when removing a task awaiting non-Panda future

This commit is contained in:
rdb 2020-05-05 13:19:26 +02:00
parent 4b00f9e660
commit b5d0e9eafc
1 changed files with 6 additions and 0 deletions

View File

@ -779,6 +779,12 @@ void PythonTask::
upon_death(AsyncTaskManager *manager, bool clean_exit) {
AsyncTask::upon_death(manager, clean_exit);
// If we were polling something when we were removed, get rid of it.
if (_future_done != nullptr) {
Py_DECREF(_future_done);
_future_done = nullptr;
}
if (_upon_death != Py_None) {
#if defined(HAVE_THREADS) && !defined(SIMPLE_THREADS)
// Use PyGILState to protect this asynchronous call.