ごぶさたしております。 青田です。 Katsumi Yamaoka <yamaoka@xxxxxxx> writes: > Katsumi Yamaoka wrote: >> Normally >> emacs-w3m works asynchronously to fetch and to display images. >> Why `C-c C-k' doesn't work seems to be that there's no time slot >> in which Emacs accepts that command because of many asynchronous >> processes at a time. I have no idea. Sorry. > >> ;; (sit-for 0) in each process might do the trick. But it's ever >> ;; been tried, hasn't it? > > Japanese: > > たくさんの画像を表示しようとしている最中に、それを `C-c C-k' で > 止めようとしても効き目が無いことは、たぶん経験していますよね。 > 非同期プロセスが次々に実行される間に、そのようなコマンドを Emacs > が受け取る隙間が無いせいだと思うのですが。 > 各プロセスに (sit-for 0) などを入れてみるようなことは、たぶんど > なたかがすでに試しているのではないかと思うのですが、いかがですか? w3m-idle-images-show() の中にはすでに "(sit-for 0.1 t)" がありますね。た だ、この処理ほんとは取り除くべきであるようです。 info によるとタイマーで 呼ばれる関数の中で sit-for() を呼ぶと再帰的にタイマーが呼ばれたり、 keyboard-translate が二回かかってしまったりよろしくないようです。 c.f. (info "(elisp) Timers") むしろ問題は画像の取得などのさいに、無闇に w3m process を作ってしまうこと かと思います。たとえば、このスレッドの最初で示されていたページだとあっと いうまに 130ほども w3m が起動され、その sentinel で手いっぱいになってい るのではないでしょうか。 ということで - (画像関連の) w3m の起動数を抑制 or - 画像と分っているものには w3m を使わない (curl や url-retrieve などの軽 量なものにする) というのはどうでしょうか。 -- 青田
Attachment:
pgpJN21qXrvgD.pgp
Description: PGP signature