スレッドはEmacs Lispに比較的後から追加された機能であり、また動的バインディングがaccept-process-outputと併用されることがあったため、デフォルトではプロセスはそれを生成したスレッドにロックされます。プロセスがスレッドにロックされている場合、そのプロセスからの出力はそのスレッドのみが受け付けることができます。
Lispプログラムでは、プロセスをどのスレッドにロックするかを指定したり、Emacsにプロセスのロックを解除するよう指示したりすることができ、その場合、プロセスの出力は任意のスレッドで処理可能になります。ある特定のプロセスからの出力を待機できるスレッドは一度に一つだけです—一度スレッドが出力の待機を開始すると、そのプロセスはaccept-process-outputまたはsit-forが復帰するまで一時的にロックされます。
スレッドが終了すると、それにロックされているすべてのプロセスのロックが解除されます。
process がロックされているスレッドを返す。process がロック解除されている場合は、nil を返す。
processのロックスレッドをthreadに設定する。threadはnilであってもよく、その場合、プロセスのロックは解除される。