Spec-Zone.ru › Elisp

Процессы и потоки

Поскольку потоки были относительно поздним дополнением к Emacs Lisp и из-за того, как иногда использовалась динамическая привязка в сочетании с accept-process-output, по умолчанию процесс блокируется потоком, который его создал. Когда процесс заблокирован потоком, вывод процесса может быть принят только этим потоком.

Программа Lisp может указать, к какому потоку должен быть заблокирован процесс, или же попросить Emacs разблокировать процесс, в таком случае его вывод может быть обработан любым потоком. Только один поток будет ожидать вывода от данного процесса в одно время — как только один поток начнет ожидать вывод, процесс временно блокируется до тех пор, пока accept-process-output или sit-for не вернутся.

Если поток завершается, все процессы, заблокированные к нему, разблокируются.

Функция: process-thread process

Возвращает поток, к которому заблокирован process. Если process разблокирован, возвращает nil.

Функция: set-process-thread process thread

Устанавливает поток блокировки process в thread. thread может быть nil, в таком случае процесс разблокируется.

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Processes-and-Threads.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API