[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: wait asynchronous process
From: OHASHI Akira <bg66@koka-in.org> さん曰く
Subject: [emacs-w3m:06047] Re: wait asynchronous process
Message-ID: <m24qxcuu1o.fsf@alias.koka-in.org>
Date: Tue, 11 Nov 2003 00:23:15 +0900
> > ‥‥‥ Meadow2 は support しないことにしましょーか(冗談).
> > それにしても,remote からのあてずっぽうでは,これ以上の追求は無理です.
> > Meadow 使いの皆さんで何か良い方法を考え出してくださることを期待します.
> > ;; こんなんで,どうして,これまで動いていたんだろ? それが不思議.
えーそんなことないだろう、っていうんでやってみました。
(let ((files '("/etc/passwd" ;; 378byte
"/etc/ssh_config" ;; 1123byte
"/etc/environment" ;; 3249byte
"/etc/primes" ;; 26287byte
))
file)
(while (setq file (car files))
(let ((times 20)
(count 0)
(success 0)
(process-connection-type t))
(while (<= (setq count (1+ count)) times)
(message "time: %d" count)
(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) ;; 10
;; (memq (process-status proc) '(run stop))))
(eq (process-status proc) 'run)))
;; (while (accept-process-output proc 0 0))
(if (= (buffer-size) (nth 7 (file-attributes file)))
(setq success (1+ success))))
(sit-for 0.005)))
(if (= success times)
(insert "Success\n")
(insert (format "Fail (%d/%d)\n" success times))))
(setq files (cdr files))))
的にして、Meadow1.15, Meadow2beta で何回もやってみたのですが、
'Fail' は一回も見なかったです。
ただし、(sit-for 0.005) を入れないと、;; 0.005 は適当
Opening socketpair: too many open files in system <= Meadow1
(file-error "Creating pipe" "no error") <= Meadow2 (なぜに pipe?)
となったり、Process がいなくなる前に kill-buffer しっちゃったり
したこともあります。
# 経験上、Meadow1 はひとつの process buffer で二つ以上のプロセス
# を動かしたり、プロセスが動いている buffer を kill するとめちゃ
# くちゃ不安定になります。
> なんだか私の環境構築に問題があるのではないかと心配になってきたので、も
> うちょっとサンプル数を増やさないと正確な事は分からないのではないかと思
> い始めています。という事でお暇な方、ご協力下さい。
ぼくが試したのは WindowsXP なのですが、大橋さんは 2000 でその違
いがあるのかな?明日は出張だから会社の Windows2000 に触れるのは
明後日までだめです。
> ;; そして環境構築の問題だったらごめんなさい(先に謝っておこう)。
いやいや、環境構築ぐらいでこんなに差は出ないと思うのですが。
Windows9x なら何があってもおかしくないけど :-)
--
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)