- 123 名前:login:Penguin mailto:sage [2019/11/07(木) 20:08:16.60 ID:AxeF2lCm.net]
- >>118
「Xのコマンドが実行完了するまで戻ってくるな」 の意味のシステムコールはあるにはある。これをFとしよう。 Linuxで先から述べている「ランレングス法を使った外形変更」のXコマンド、 をRとしよう。 Fは、Rについては処理が終わって無くても、すぐに帰ってきてしまう。 だから、せっかくFを実行してもRはまだ終わって無い状態になっている。 もし、Fが、Rの処理が終わるまで待ってくれていたなら、問題は余り無い。 単に描画が本家Windowsより遅い程度で済む。 ところが、現実には、処理が終わって無いのに、アプリ本体が次から次へと アニメーションのために、画面の書き換えAPIを呼び出す。 本家では、先に述べた Invalideteや、WM_TIMERの仕組みが、自動的に それを抑制してくれているのでもんだ無い。 ところが、Linuxの場合だと、Xコマンドがまだまだ大量に残っている状態で、 アプリ側が次から次へとXコマンドを発行するようなことが繰り返される。 この結果、Linuxのデスクトップシステム全体が全く人間のマウス操作に反応できない ような状態が何分も続くようなことがおきてしまう。 ハングアップしたのかと思って、念のためアプリをなんとか停止させた後に、 数分待っていると、正常な状態に戻る。 事情を知らない人にはハングアップに見えるので、ある意味では「脆弱性」とも言えるかもしれない。
|

|