トランザクションを用いたサブプロセスとの通信に
トランザクションキュー(transaction queue)を使えます。
まずtq-create
を用いて、
指定したプロセスとの通信用トランザクションキューを作成します。
そして、トランザクションを送るためにtq-enqueue
を呼び出します。
この関数は、プロセスprocessとの通信用トランザクションキューを 作成して返す。 引数processは、バイトストリームを送受信できる機能を 有するサブプロセスであること。 つまり、子プロセスであるか、別のマシン上の可能性もある サーバーへのTCP接続である。
この関数はキューqueueにトランザクションを送る。 キューを指定することは、 通信相手のサブプロセスを指定する効果がある。
引数questionは、トランザクションを始める送出メッセージである。 引数fnは、対応する応答が戻ってきたときに呼び出す関数である。 その関数は2つの引数、closureと受け取った応答で呼び出される。
引数regexpは、1つの応答だけに一致する正規表現である。
tq-enqueue
が応答の末尾を判定するために使う。
tq-enqueue
の戻り値そのものに意味はない。
トランザクションキューはフィルタ関数を用いて実装してあります。 See Filter Functions。