diff --git a/Lib/test/support/interpreters.py b/Lib/test/support/interpreters.py index 9ba6862a9ee01a..ec73a09a6e9a09 100644 --- a/Lib/test/support/interpreters.py +++ b/Lib/test/support/interpreters.py @@ -241,4 +241,4 @@ def close(self): # XXX This is causing leaks (gh-110318): -#_channels._register_end_types(SendChannel, RecvChannel) +_channels._register_end_types(SendChannel, RecvChannel) diff --git a/Lib/test/test_interpreters.py b/Lib/test/test_interpreters.py index 0910b51bfe5dbd..4f3a757210bde0 100644 --- a/Lib/test/test_interpreters.py +++ b/Lib/test/test_interpreters.py @@ -833,7 +833,6 @@ def test_list_all(self): after = set(interpreters.list_all_channels()) self.assertEqual(after, created) - @unittest.expectedFailure # See gh-110318: def test_shareable(self): rch, sch = interpreters.create_channel() diff --git a/Modules/_xxinterpchannelsmodule.c b/Modules/_xxinterpchannelsmodule.c index be53cbfc39b4dd..641af439a0c678 100644 --- a/Modules/_xxinterpchannelsmodule.c +++ b/Modules/_xxinterpchannelsmodule.c @@ -441,6 +441,10 @@ _get_current_module_state(void) static int traverse_module_state(module_state *state, visitproc visit, void *arg) { + /* external types */ + Py_VISIT(state->send_channel_type); + Py_VISIT(state->recv_channel_type); + /* heap types */ Py_VISIT(state->ChannelIDType); Py_VISIT(state->XIBufferViewType);