[Rumble-jp-dev] ShutdownHook

Back to archive index

Laplace lapla****@csc*****
2003年 5月 26日 (月) 21:40:33 JST


laplaceです。
# 地震大丈夫でしたか?

> 分散サーバのShutdownHookですが、
> よく考えるとどう書いていいかわかりませんね。

たしかに難しいですよ。
ShutdownHook機能があるということで、追加しましたが、
当時はかなり悩みました。
どのようにしても、完全に送信できるパターンが
なかったような記憶があります。
で、通信に使うオブジェクトでブロックすれば
なんとかなるやろって感じで、synchronizedをつけましたが、
特殊なタイミングでは、どのように動くのか想像できません。
デッドロックっぽいのが発生するかよくわかりません。

> Ctrl+Cで止めたとき、メインスレッドがsynchronizedセクションにいても
> 強制的に止められてしまうと考えると、
> (この考え方が合っているのか分からないんですが)
> せっかくsynchronizedセクションで囲っていても、
> データが不整合状態になりえるからです。

データの不整合ってどんなパターンですか?

> SwingアプリでShutdownHookを使って、
> 編集中のデータを保存しますか?なんていうダイアログを出すアプリを
> 作ったことがあるんですが、

APIを見る限りでは、長時間ブロックや、
ユーザとの対話処理はお勧めできないと書いてますよ。
どうなるのかまで書いてないのが問題ですなぁ。

> んー、謎。
> とりあえず謎なまま実装しておいて、
> のちのちGUIアプリにしちゃってjavawで起動してCtrl+Cなんか
> 受け付けないようにしちゃいますか。
> 分散サーバプログラムの自動アップデータとか作りたいしなー。

GUIは賛成ですが、今度はServer.javaをThreadにしないと
いけなくなって、余計に複雑なような感じだったのですが
どうなんでしょう?
ServerGUIはそれがわからなくって、途中になったままです(^^;;;





Rumble-jp-dev メーリングリストの案内
Back to archive index