[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: wait asynchronous process
>> On Mon, 10 Nov 2003 21:06:58 +0900
>> 「大」== bg66@koka-in.org (OHASHI Akira) said as follows:
大> Meadow2 と OS X 上の Emacs (--with-carbon) で検証してみました。
ありがとうございます.
それにしても,この
大> file size
大> 603 4397 12889 86327
大> Meadow2@Window2000
大> Success Fail (0/20) Success Success (slow!)
大> Success Fail (0/20) Success Success (slow!)
大> Success Fail (0/20) Success Success (slow!)
大> Success Fail (0/20) Success Success (slow!)
ファイルサイズ 4397 byte の結果は何と言うか,やる気を失わせる結果です
ね….
以下の検証用コードならどうでしょうか? 従来版と異なるのは,
・process-status で run だけでなく,stop も許すようにした
・最後に取りこぼしがないように,accept-process-output を余分に呼び
出すようにした.
の2点です.
(let ((file "/etc/wgetrc")
(times 20)
(count 0)
(success 0)
(process-connection-type t))
(while (<= (setq count (1+ count)) times)
(with-temp-buffer
(let ((proc (start-process "cat" (current-buffer) "cat" file)))
(set-process-sentinel proc 'ignore)
(while (or (accept-process-output proc 0 0)
(memq (process-status proc) '(run stop))))
(while (accept-process-output proc 0 0))
(if (= (buffer-size) (nth 7 (file-attributes file)))
(setq success (1+ success))))))
(if (= success times)
(message "Success")
(message "Fail (%d/%d)" success times)))
ただ,この方法は,XEmacs のように,process を指定した
accept-process-output が期待通りに動いていない Emacsen では使えない終
了待ちの方法なんですよねえ.どうしたもんだか.
--
土屋 雅稔 ( TSUCHIYA Masatoshi )