Подтвердить что ты не робот

В gevent, как я могу сбросить трассировки стека всех запущенных зелий?

Для целей отладки я хотел бы перебрать все зеленые точки и получить их следы следов - как я могу это сделать с помощью gevent?

В принципе, я хотел бы сделать эквивалент gevent этого.

4b9b3361

Ответ 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)))