@@ -958,11 +958,6 @@ _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject *s
958958 if (ensure_async_debug_offsets (self ) < 0 ) {
959959 return NULL ;
960960 }
961- PyObject * seen = PySet_New (NULL );
962- if (seen == NULL ) {
963- set_exception_cause (self , PyExc_MemoryError , "Failed to create interpreter set" );
964- return NULL ;
965- }
966961
967962 PyObject * result = PyList_New (0 );
968963 if (result == NULL ) {
@@ -971,24 +966,8 @@ _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject *s
971966 }
972967
973968 // gh-158880: Tasks live in every interpreter, not only the one at the list head
974- for (uintptr_t interp = self -> interpreter_addr ; interp != 0 ; ) {
975- PyObject * addr = PyLong_FromUnsignedLongLong (interp );
976- if (addr == NULL ) {
977- set_exception_cause (self , PyExc_MemoryError , "Failed to create interpreter address" );
978- goto result_err ;
979- }
980- Py_ssize_t seen_count = PySet_GET_SIZE (seen );
981- int marked = PySet_Add (seen , addr );
982- Py_DECREF (addr );
983- if (marked < 0 ) {
984- set_exception_cause (self , PyExc_RuntimeError , "Failed to mark interpreter as seen" );
985- goto result_err ;
986- }
987- if (PySet_GET_SIZE (seen ) == seen_count ) {
988- // already walked
989- break ;
990- }
991-
969+ uintptr_t interp = self -> interpreter_addr ;
970+ while (interp != 0 ) {
992971 if (refresh_generation_caches_for_interpreter (self , interp ) < 0 ) {
993972 goto result_err ;
994973 }
@@ -1023,12 +1002,10 @@ _remote_debugging_RemoteUnwinder_get_all_awaited_by_impl(RemoteUnwinderObject *s
10231002 }
10241003
10251004 _Py_RemoteDebug_ClearCache (& self -> handle );
1026- Py_DECREF (seen );
10271005 return result ;
10281006
10291007result_err :
10301008 _Py_RemoteDebug_ClearCache (& self -> handle );
1031- Py_DECREF (seen );
10321009 Py_XDECREF (result );
10331010 return NULL ;
10341011}
0 commit comments