OCamlテクニック/daemon

普通 daemon というと listen していて accept するとプロセスをフォークするアレですが、プロセスでは無くスレッドを作って対処するなんちゃって daemon を作成しました。 OCaml の Thread,Event ライブラリを利用した concurrent programming を体験するにはちょうどいい題材です。

少し解説すると、daemon.ml の

  select [wrap (receive cmdCh) cmd_fsm;
	    wrap accept_evt lunch_action]

という部分は、

   * コマンドチャネルにコマンドが送られてくる
   * accept が起きる

という2つのイベントの内、どちらか先に起きた方だけ実行しろ、かつ、どちらかのイベントが来るまで待ってろ、という意味になります。



添付ファイル: filemain.ml 1958件 [詳細] filelistener.ml 2037件 [詳細] filecompile.sh 2021件 [詳細] filedaemon.ml 2032件 [詳細]
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-08-01 (土) 20:39:28 (5382d)