В gevent, как я могу сбросить трассировки стека всех запущенных зелий?
Для целей отладки я хотел бы перебрать все зеленые точки и получить их следы следов - как я могу это сделать с помощью gevent?
В принципе, я хотел бы сделать эквивалент gevent этого.
Ответ 1
Вы можете использовать модуль gc, чтобы перебирать все объекты в куче и искать зеленые. Greenlets сохраняют трассировку стека как атрибут gr_frame.
import gc
import traceback
from greenlet import greenlet
for ob in gc.get_objects():
if not isinstance(ob, greenlet):
continue
if not ob:
continue
log.error(''.join(traceback.format_stack(ob.gr_frame)))