IT用語集 › プログラミング › WM_SAVE_YOURSELF

WM_SAVE_YOURSELF

プログラミング Svenska → 更新: 2026-10-22

ICCCM が最初に用意したセッション管理の仕組み。ウィンドウマネージャがプログラムに「再起動用のコマンドを書き残せ」と頼み、プログラムは WM_COMMAND を書き換えて答える。1994年に非推奨となったが、いまだに生き延びている。

1989年の X11R4 とともに出た ICCCM 1.0 にはセッションマネージャがなく、セッション管理はたった一つのメッセージで済ませるしかなかった。プログラムは WM_PROTOCOLS に WM_SAVE_YOURSELF を登録しておく。ログアウトやチェックポイントの際、ウィンドウマネージャがこのアトムを載せた ClientMessage を送ると、プログラムは現在の状態を再現できるコマンドラインを WM_COMMAND に書き込んで応答する。保存すべき状態がなければ以前と同じ内容、再起動を望まないなら空の内容を書く。この書き込み自体が確認応答であり、ウィンドウマネージャは WM_COMMAND への PropertyNotify を待ち、タイムアウトしたものは固まったと見なした。その間、プログラムはユーザーに話しかけてはならず、未保存の変更を確認するダイアログも明示的に禁じられていた。

欠陥はすぐに露呈した。チェックポイントとセッション終了を区別できず、断ることもできず、答えがウィンドウ単位のプロパティなのでプログラム単位ではなくウィンドウ単位のコマンドになってしまう。1994年の ICCCM 2.0 は手順全体を廃止された慣習の付録へ移し、XSMP を案内した。それでも消えてはおらず、XSMP を話せないプログラム向けに smproxy が今も送り、KDE の ksmserver も「レガシーセッション管理」として同じ手を内蔵している。

← 用語集に戻る