[#12340] CGI#out — Shugo Maeda <shugo@...>
前田です。
[#12354] re: higher-resolution Time for Win32 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#12364] Dir::fnmatch? — "Akinori MUSHA" <knu@...>
[ruby-dev:12229] の、 Dir::fnmatch? の追加には特に問題や反対
まつもと ゆきひろです
[#12385] Re: NaN, Infinity (Bug?) — WATANABE Hirofumi <eban@...>
わたなべです。
[#12387] reducing logical operation — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
えぐち@エスアンドイー です。
なかだです。
えぐち@エスアンドイー です。
なかだです。
えぐち@エスアンドイー です。
木山です.
[#12404] fork in threads — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
なひです。
[#12405] at_exit — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#12415] — Koji Arai <JCA02266@...>
新井です。
[#12425] bignum % の結果が負数になることがある — Hisayasu Nakao <h-nakao@...>
最近、ruby-1.6.2を使い出したばかりの中尾です。
わたなべです。
In message <4518-Mon12Mar2001145434+0900-eban@os.rim.or.jp>
まつもと ゆきひろです
In message <984469222.234203.1007.nullmailer@ev.netlab.zetabits.com>
なかだです。
In message <200103131446.XAA22520@sharui.nakada.kanuma.tochigi.jp>
まつもと ゆきひろです
In message <984550885.417146.3670.nullmailer@ev.netlab.zetabits.com>
まつもと ゆきひろです
In message <984553493.009507.3747.nullmailer@ev.netlab.zetabits.com>
まつもと ゆきひろです
In message <984579430.080967.5569.nullmailer@ev.netlab.zetabits.com>
まつもと ゆきひろです
[#12483] sort! of empty array — Shin-ichiro HARA <sinara@...>
原です。
まつもと ゆきひろです
なひです。
[#12492] compile error on mswin32 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#12513] SOLIBS — "Akinori MUSHA" <knu@...>
configure.in に以下のような修正を加えたいと思っています。
In message <86itlbdv32.wl@archon.local.idaemons.org>
[#12535] シンボリックリンクを含むパスを渡した時の Dir.glob() の動作 — tachino Nobuhiro <tachino@...>
[#12537] re-initialize ARGF — Masaki Suketa <masaki.suketa@...>
助田です。
[#12541] Thread.kill — Masatoshi SEKI <m_seki@...>
[#12570] compile error on ews48 — Koji Arai <JCA02266@...>
新井です。
[#12578] require 'win32api' — Kazuhiro NISHIYAMA <zn@...>
require 'win32api'のエラーメッセージがわかりにくいと
なかだです。
なかだです。
In <200103211407.XAA03408@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In <200103220905.SAA01745@m3.gw.fujitsu.co.jp>
artonです。
[#12582] finalizer problem — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
[#12605] extern inline (ruby.h) ruby-1.6.3 — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
まつもと ゆきひろです
渡辺哲也です。
まつもと ゆきひろです
まつもと ゆきひろです
新井です。
[#12621] Marshal bug still remains — "Akinori MUSHA" <knu@...>
Marshal にまだバグが残っています。最新安定版で:
[#12623] [req] Symbol#intern — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#12672] segv on Continuation#call on C_ALLOCA system — Koji Arai <JCA02266@...>
新井です。
[#12674] Was: [rubyist:0454] Re: to_str — Kenichi Komiya <kom@...1.accsnet.ne.jp>
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
なかだです。
なかだです。
新井です。
なかだです。
まつもと ゆきひろです
[#12693] Re: [ruby-cvs] ruby/lib: * ext/extmk.rb.in, lib/mkmf.rb: move C++ rules to the right place. — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
At Wed, 28 Mar 2001 21:08:14 +0900,
[#12699] cross compile mingw-ruby on cygwin — Koji Arai <JCA02266@...>
新井です。
[ruby-dev:12460] Re: at_exit
けいじゅ@日本ラショナルソフトウェアです.
In [ruby-dev :12443 ] the message: "[ruby-dev:12443] Re: at_exit ", on
Mar/13 01:51(JST) Yukihiro Matsumoto writes:
>まつもと ゆきひろです
>|と思いましたが. 今一です...
>|
>|Thread.start do
>| begin
>| ...
>| ensure
>| ...
>| end
>|end
>|
>|でensure(rescueでもよし)プロセスの終了時に呼ばれているのか, スレッドが本
>|当に終わっているのか, はたまた例外なのかが簡単にわかる方法ってあります?
>
>えーと、
>
>>どういうシチュエーションでなにが必要なのかもうちょっとはっき
>>りするといいかもしれませんね。
>
>を繰り返さざるをえません。(自分で決めた)解答から始めるんじゃ
>なくて、解決したい問題から始めてくださいな。本当に区別する必
>要があるんですか?
何をやっているかというと, 昔shell.rbってありましたよね
[ruby-list:7262]. 松本さんも絶賛で[ruby-list:7263], つい最近まで標準添付
ライブラリになっていたのですが... 知らないうちに標準添付から外されてい
まいました(;_; で, 悔しかったので完全版を作成中です. おかげさまで, ほと
んどの問題は解決したんですが, まだ問題が幾つか残っていまして...
まず, Shellの動作原理ですが....
sh.cat("/etc/printcap") | sh.tee("tee1") >> "tee2"
みたいなこととか
print sh.cat("/etc/passwd").head.collect{|l| l =~ /keiju/}
みたいなことができるように, パイプの処理は別スレッドで行っています. とい
うのも,
sh.cat("/etc/printcap") | sh.tee("tee1") >> "tee2"
は, sh.cat("/etc/printcap"), sh.tee("tee1"), "tee2" が実行されて, そのあ
と >>, | の順に実行されるので, コマンドの実行後にpipeの結合が行われるか
らです. それなら, pipe結合されるまで実行しなければいいんでは? って話もあ
るかもしれませんが, そうでもなく, 上記で sh.cat... が実行された後,
pipeされるかどうかはわかりません. それで何をやっているかというと
sh.cat を実行するとすぐその結果を親プロセス側のQueueにいれてバッファリ
ングしはじめます, で, そのあと sh.tee も同様に行い | が来たときに上記
Queueの内容をsh.teeに出力するようにしています.
そうすると, 基本的な動作はOKなんですが... まだプロセス終了の問題がありま
して...
上記の処理はすべて裏方threadが行っていますので, メインスレッドが終了する
と, プロセスが終了しちゃいますので裏方threadが幾ら仕事をしたいと言っても,
とまっちゃうんですよね... すると, 実行中のコマンドもIOがcloseされて止っ
てしまうと...
で今やっているのが, 以下の感じとか
## waitpid部分
th = Thread.start {
begin
# @job_monitor.synchronize do
_pid = nil
begin
_pid = Process.waitpid(pid, nil)
rescue Errno::ECHILD
print "shell: warn: job#{command.name}(#{pid}) was done already waitipd.\n" if @shell.verbose?
_pid = true
ensure
# プロセス終了時にコマンド実行が終わるまで待たせるため.
raise AT_EXIT unless _pid
terminate_job(command)
# @job_condition.signal
printf "Finish: %d\n", pid if @shell.debug?
end
# end
rescue AT_EXIT
retry
end
}
こんなかんじとか...
## pipe読み込み部分
Thread.start {
print "<imp##{@command}>\n" if @shell.debug?
rs = @shell.record_separator unless rs
loop do
begin
eop = true
while l = @pipe_in.gets
@input_queue.push l
end
eop = false
rescue Errno::EPIPE
eop = false
ensure
next if eop
print "EOF##{@command}\n" if @shell.debug?
@input_queue.push :EOF
@pipe_in.close
break
end
end
}
で, 一応実現できているのですが, もうちょっとどうにかならんかと....
__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju@rational.com <<---