[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

timer doesn't work in XEmacs



現在 w3m.el の一箇所に、XEmacs でも使われる run-at-time がありま
す。が、これ、少なくともぼくの環境では、たぶんまともに動作してい
ません。run-at-time の第一引数に与えた秒数よりも、極めて短い時間
でタイマーが作動してしまいます。さっき XEmacs-beta に出したテス
トプログラム、Emacs では正しく動作します:

(defun test-timer (second)
  (interactive "nSecond: ")
  (let ((start (current-time)))
    (run-at-time
     second nil
     (lambda (start)
       (let ((end (current-time)))
	 (message "Lapsed: %f"
		  (+ (* (- (car end) (car start)) 65536)
		     (- (nth 1 end) (nth 1 start))
		     (/ (- (nth 2 end) (nth 2 start)) 1000000.0)))))
     start)))

;; 何となく refresh の動作が変だと思ったことはあるんですが、気に
;; していませんでした。:)

ぼくの仕事場の環境では、Gnus の起動時に shimbun の新着記事を調べ
る段階で、サーバーの反応が遅いと proxy が timeout してしまいます。
しかしその場合、w3m のプロセスはしっかり proxy につかまったまま
なので、いつまで待っても Gnus が起動しないことがよくあります。そ
こで C-g をたたくと大抵は Gnus の起動そのものも止めてしまうので、
しかたなく今までずっと端末で w3m のプロセスを kill していました。

でも、そういう場合にタイマーで w3m-process-start-and-wait に
quit シグナルを送ってやれば timeout を設定できそうだと思って作業
をはじめたのですが、上記の理由により頓挫してしまったのでした。

;; ぼくもいい加減に XEmacs から足を洗いたい。でもぼくがやめると
;; Gnus や emacs-w3m に XEmacs では動かないコードが入れられてし
;; まったときに対処する人がいなくなってしまうかもしれないし。
;; Wanderlust は大丈夫? :-p
-- 
Katsumi Yamaoka <yamaoka@jpl.org>