トップ 最新

かってきままな日々

2022-01-15 (Sa) [長年日記]

_ pgtk デバッグ

負荷高い状態で fido-mode 使って C-h v を使うと、 時々文字がダブる、ってことで…

font-wei って入力したつもりが fofont-wei になる。

負荷でキーリピートが効いてしまったんじゃね? とも考えたんだけど、 キーリピートではこうはならないんだよね。foont-wei にはなるかもしれんが。

デバッグモードでビルドするとなりやすい、ってことで…

  • デバッグモードでビルド
  • root 権限で while :; do true; done & を 16個実行
  • emacs -Q を起動
  • M-x fido-mode
  • C-h v
  • 素早く font-weight-table と入力してみる。何度かやってみる

「root 権限で」ってのは、& が付いてるので、 一般ユーザ権限だと勝手に nice されてしまって、影響が小さくなってしまうんだよね。

これで、確かに2つの文字が二重に入力されてしまうことがあるのが確認できた。

デバッグしていって、pgtkterm.c のイベントキューの処理まで行ったんだけど、 そこでかなり悩んだ。二重に key buffer に送るなんて、そんなことあるわけがない…

あるとすれば longjmp? printf を突っ込んだところ、確かにそれっぽい動作をしている。 longjmp すると、イベントが処理されてないことになってしまう。

いつ longjmp してもいいように、キューの状態をちゃんと変えてやることで回避。

wanderlust 練習のためパッチを wanderlust で送ってみた。