`ox_reset',`ox_intr',`register_handler'
---------------------------------------

ox_reset(NUMBER)
     :: プロセスのリセット

ox_intr(NUMBER)
     :: プロセスのに `SIGINT' 送付

register_handler(FUNC)
     :: プロセスのリセットのための関数登録

RETURN
     1

NUMBER
     数 (プロセス識別子)

FUNC
     関数子または 0

   * `ox_reset()' は, 識別子 NUMBER のプロセスをリセットし, コマン
     ド受け付け状態にする.

   * そのプロセスが既に書き出した,
     あるいは現在書き出し中のデータがある場合, それを全部読み出し,
     出力バッファを空にした時点で戻る.

   * 子プロセスが RUN 状態の場合でも,
     割り込みにより強制的に計算を終了させる.

   * 分散計算を行う函数の先頭で, 使用するプロセスに対して実行する.
     あるいは 計算途中での強制中断に用いる.

   * `ox_intr()' は, 識別子 NUMBER のプロセスをに対して `SIGINT'
     を送付する. `SIGINT' に対するプロセスの動作は 規定されていないが,
     `ox_asir' の場合, ただちに debug mode に 入る. X
     上で動作している場合, デバッグコマンド入力用のウィンドウが
     ポップアップする.

   * `register_handler()' は, `C-c' などによる割り込みの際に, `u'
     を指定することで, 無引数ユーザ定義関数 FUNC() が呼び出される
     ように設定する. この関数に, `ox_reset()' を呼び出させることで,
     割り込みの際に自動的に OpenXM server のリセットを行うことができる.

   * FUNC に 0 を指定することで, 設定を解除できる.


     [10] ox_launch();
     0
     [11] ox_rpc(0,"fctr",x^100-y^100);
     0
     [12] ox_reset(0); /* xterm のウィンドウには                             */
     1                 /* usr1 : return to toplevel by SIGUSR1 が表示される. */

     [340] Procs=[ox_launch(),ox_launch()];
     [0,1]
     [341] def reset() { extern Procs; map(ox_reset,Procs);}
     [342] map(ox_rpc,Procs,"fctr",x^100-y^100);
     [0,0]
     [343] register_handler(reset);
     1
     [344] interrupt ?(q/t/c/d/u/w/?) u
     Abort this computation? (y or n) y
     Calling the registered exception handler...done.
     return to toplevel

参照
     *Note `ox_rpc ox_cmo_rpc ox_execute_string': ox_rpc ox_cmo_rpc
     ox_execute_string

