def thread_frame_generator(): frames = _current_frames() for thread_ in enum_threads(): try: frame = frames[thread_.ident] except KeyError: pass # race prone, threads might finish.. else: yield (thread_, frame)
def thread_and_stack_generator(): frames = _current_frames() for thread_ in enum_threads(): try: frame = frames[thread_.ident] stack_list = format_stack(frame) yield (thread_, ''.join(stack_list)) except KeyError: pass # race prone, threads might finish..