From eb83148c96738c21f15260c9e1401d2a77ec8779 Mon Sep 17 00:00:00 2001 From: Fidget-Spinner <28750310+Fidget-Spinner@users.noreply.github.com> Date: Fri, 28 May 2021 19:32:53 +0800 Subject: [PATCH] Fix GC assertion error in _winapi by untracking Overlapped earlier --- Modules/_winapi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/_winapi.c b/Modules/_winapi.c index 30fcb4e1768eef..2c034628e34e94 100644 --- a/Modules/_winapi.c +++ b/Modules/_winapi.c @@ -132,6 +132,7 @@ overlapped_dealloc(OverlappedObject *self) DWORD bytes; int err = GetLastError(); + PyObject_GC_UnTrack(self); if (self->pending) { if (check_CancelIoEx() && Py_CancelIoEx(self->handle, &self->overlapped) && @@ -164,7 +165,6 @@ overlapped_dealloc(OverlappedObject *self) CloseHandle(self->overlapped.hEvent); SetLastError(err); - PyObject_GC_UnTrack(self); if (self->write_buffer.obj) PyBuffer_Release(&self->write_buffer); Py_CLEAR(self->read_buffer);