From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 22 Jul 2026 12:21:19 +0000 (+0200) Subject: [3.13] gh-154137: Fix handle leak in test_winapi (GH-154201) (#154204) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=02e5880da4ba3e78969babfac7f14601c7f410e3;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-154137: Fix handle leak in test_winapi (GH-154201) (#154204) gh-154137: Fix handle leak in test_winapi (GH-154201) Make sure that events handles are closed. (cherry picked from commit 1f9d20bbd4fed601e7caf76a12e52d35c8ae2b14) Co-authored-by: Victor Stinner --- diff --git a/Lib/test/test_winapi.py b/Lib/test/test_winapi.py index 73b8228ddc97..b7e8659e63e2 100644 --- a/Lib/test/test_winapi.py +++ b/Lib/test/test_winapi.py @@ -14,9 +14,16 @@ _winapi = import_helper.import_module('_winapi', required_on=['win']) MAXIMUM_WAIT_OBJECTS = 64 MAXIMUM_BATCHED_WAIT_OBJECTS = (MAXIMUM_WAIT_OBJECTS - 1) ** 2 + +def close_events(events): + for handle in events: + _winapi.CloseHandle(handle) + + class WinAPIBatchedWaitForMultipleObjectsTests(unittest.TestCase): def _events_waitall_test(self, n): evts = [_winapi.CreateEventW(0, False, False, None) for _ in range(n)] + self.addCleanup(close_events, evts) with self.assertRaises(TimeoutError): _winapi.BatchedWaitForMultipleObjects(evts, True, 100) @@ -44,6 +51,7 @@ class WinAPIBatchedWaitForMultipleObjectsTests(unittest.TestCase): def _events_waitany_test(self, n): evts = [_winapi.CreateEventW(0, False, False, None) for _ in range(n)] + self.addCleanup(close_events, evts) with self.assertRaises(TimeoutError): _winapi.BatchedWaitForMultipleObjects(evts, False, 100)