IT用語集 › プログラミング › タイムスタンプ (X11)

タイムスタンプ (X11)

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

Xサーバー自身の時計。ミリ秒単位の32ビットの値がキー入力やマウスクリックのたびに付いてきて、二つのプログラムが同じ資源を欲しがったときの勝者を決める。

サーバーは任意の起点、実際にはサーバーの起動時点からミリ秒を数え、このカウンターは約49日でひと回りする。キー、ボタン、プロパティのイベントにはすべてこの値が付く。飾りではない。セレクションを所有したい、グラブを取りたい、フォーカスを移したいというクライアントはタイムスタンプを添えて要求し、最後の変更より古ければサーバーは拒否する。こうして、サーバーがどちらが正しいかを知らなくても、クライアント間の競合が決着する。最新のユーザーイベントに基づいて動いたほうが勝つのだ。

定数 CurrentTime(値は0)は「今」を意味し、手元にイベントがないときは使いたくなる。ICCCMはセレクションに対してこれを禁じている。「今」は競争に絶対に負けないので、規則が意味を失うからだ。新しいイベントを持たないプログラムは、プロパティに0バイトを書き込み、戻ってきた PropertyNotify から時刻を読み取るよう定められている。同じスタンプはさらに上の層も支える。_NET_WM_USER_TIME とスタートアップ通知は、ユーザーが最後に何かした時刻を記録し、フォーカス奪取防止の根拠になっている。

← 用語集に戻る