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

Re: start-process



>> On Tue, 03 Apr 2001 11:26:30 +0900 (JST)
>> 「白井」== shirai@rdmg.mgcs.mei.co.jp (Hideyuki SHIRAI (白井秀行)) said as follows:

白井> この秒数の差で問題が出るなら、sentinel を使った方が良いんじゃ無
白井> いでしょうか?

うーん。秒数の問題だけじゃないようなんですけど。例えば、私の環境では以
下のようなコードは、無限ループしてしまいます。


    (with-temp-buffer
      (let* ((process-connection-type t)
             (proc (start-process "*w3m*"
                                  (current-buffer)
                                  "w3m" "-dump_source" "http://namazu.org/"))
             (w3m-process-running t))
        (set-process-sentinel proc
                              (lambda (proc event)
                                (and (string-match "^\\(finished\\|exited\\)" event)
                                     (buffer-name (process-buffer proc))
                                     (save-excursion
                                       (set-buffer (process-buffer proc))
                                       (setq w3m-process-running nil)))))
        (while w3m-process-running
          (sleep-for 0.1))
        (process-exit-status proc)))


この場合は C-g 連打で抜けること自体はできるので、これまでに出てきた固
まってしまうコードよりはましですけど。


白井> # しかし、私の XEmacs だと process-connection-type を nil にしな
白井> # いと終りがわからない。。。

ああ、此の問題は私だけじゃなかったんですか。私も、XEmacs の場合は 
w3m-process-connection-type => nil にして使ってます。

-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )
    http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/