40.4 Список потоков

Команда list-threads перечисляет все запущенные в данный момент потоки. В полученном буфере каждый поток идентифицируется либо именем, переданным в make-thread (см. Основные функции потоков), либо его уникальным внутренним идентификатором, если он не был создан с именем. Показывается статус каждого потока на момент создания или последнего обновления буфера, в дополнение к объекту, на котором поток был заблокирован в этот момент, если он был заблокирован.

Переменная: thread-list-refresh-seconds

Буфер *Threads* будет автоматически обновляться два раза в секунду. Вы можете ускорить или замедлить частоту обновления, настроив эту переменную.

Ниже приведены команды, доступные в буфере списка потоков:

b

Показать трассировку стека потока в текущей точке. Это покажет, где в его коде поток приостановился или был заблокирован в момент нажатия b. Обратите внимание, что трассировка стека — это снимок; в это время поток мог возобновить выполнение, находиться в другом состоянии или завершиться.

Вы можете использовать g в буфере трассировки стека потока, чтобы получить обновленную трассировку стека, так как буферы трассировки стека не обновляются автоматически. См. Трассировки стека для описания трассировок стека и других команд, работающих с ними.

s

Послать сигнал потоку в текущей точке. После s введите q, чтобы отправить сигнал выхода, или e, чтобы отправить сигнал ошибки. Потоки могут реализовывать обработку сигналов, но поведение по умолчанию — выйти при любом сигнале. Поэтому используйте эту команду только в том случае, если вы понимаете, как перезапустить целевой поток, поскольку ваша сессия Emacs может работать некорректно, если необходимые потоки будут завершены.

g

Обновить список потоков и их статусы.