Previous: , Up: Output from Processes   [Contents][Index]


38.9.5 プロセスとスレッド

スレッドは比較的に新しくEmacs Lispに追加されたものであり、ダイナミックバインドがaccept-process-outputと組み合わせて使用される方法のために、デフォルトではプロセスはそれを作成したスレッドにロックされます。プロセスがスレッドにロックされた場合には、プロセスの出力はそのスレッドだけが受け取ることができます。

Lispプログラムはプロセスがロックされたスレッドがどれかを指定したり、あるいはEmacsにプロセスのアンロックを指示することができ、この場合にはプロセスの出力を任意のスレッドが受け取ることができます。与えられたプロセスから出力を待機できるのは一度に1つのスレッドだけです。1つのスレッドが一度出力を待機すると、プロセスはaccept-process-outputsit-forがリターンするまで一時的にロックされます。

スレッドがexitすると、それにロックされたすべてのプロセスがアンロックされます。

Function: process-thread process

processがロックされているスレッドをリターンする。processがロックされていなければnilをリターンする。

Function: set-process-thread process thread

processをロックするスレッドをthreadにセットする。threadnilでもよく、この場合にはプロセスはアンロックされる。