スレッドは比較的に新しくEmacs
Lispに追加されたものであり、ダイナミックバインドがaccept-process-outputと組み合わせて使用される方法のために、デフォルトではプロセスはそれを作成したスレッドにロックされます。プロセスがスレッドにロックされた場合には、プロセスの出力はそのスレッドだけが受け取ることができます。
Lispプログラムはプロセスがロックされたスレッドがどれかを指定したり、あるいはEmacsにプロセスのアンロックを指示することができ、この場合にはプロセスの出力を任意のスレッドが受け取ることができます。与えられたプロセスから出力を待機できるのは一度に1つのスレッドだけです。1つのスレッドが一度出力を待機すると、プロセスはaccept-process-outputかsit-forがリターンするまで一時的にロックされます。
スレッドがexitすると、それにロックされたすべてのプロセスがアンロックされます。
processがロックされているスレッドをリターンする。processがロックされていなければnilをリターンする。
processをロックするスレッドをthreadにセットする。threadはnilでもよく、この場合にはプロセスはアンロックされる。