[#29986] ruby 1.6.4 to be released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#29987] ライセンス論点整理 — Tacos <ozaki@...>
なかだです。
Tacos っす。
こんにちは、なかむら(う)です。
まつもと ゆきひろです
Tacos です。
まつもと ゆきひろです
At Sun, 3 Jun 2001 00:19:37 +0900,
[#30026] ライセンス/論点整理メモ ver0.91 — Tacos <ozaki@...>
まつもと ゆきひろです
Tacos です。
[#30030] Ruby license discussion — Masayuki Hatta <mhatta@...>
八田と申します。
At Sat, 2 Jun 2001 14:31:02 +0900,
In "akira yamada / やまだあきら <akira@ruby-lang.org>" wrote:
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
[#30041] Shellwords — "Akinori MUSHA" <knu@...>
自分のプログラムで、 Shellwords::shellwords を使うようにしたら
[#30048] RTtool and RDtool — Takahiro Kambe <taca@...>
こんばんは。
[#30067] [Q]drb で提供されている object のメソッド一覧を得るには ? — eda@...
えだです。
[#30112] Ann: NETRuby (NOTRuby for .NET) pre alpha — arton <arton@...>
artonです。
[#30120] Oracle7 用拡張モジュール +Oracle 7.2(Solaris) — SAITO Shukaku <shukaku@...>
斉藤秀格と申します。Oracle7用拡張モジュールをOracle 7.2に対して利用でき
[#30122] [Q]"2001 年 01 月 02 日 03 時 05 分 " を "2001 年 1 月 2 日 3 時 5 分 " のようにするには ? — eda@...
えだです。
[#30129] ライセンス FACT SHEET ver0.95 — Tacos <ozaki@...>
[#30132] ライセンスQ&A — Tacos <ozaki@...>
[#30141] 数字の 3 桁区切り — Makoto Sato <makotosato@...>
佐藤@NGBです。
[#30155] How do we treat local static variables? — IKEGAMI Daisuke <daisu-ik@...>
ruby-list の皆さんこんにちは。
にし@おかやまです。
NISHI Takao さん wrote :
元質問者のいけがみです。
[#30157] 「訴えられらくない」をまじめに考える。 — Tacos <ozaki@...>
[#30163] FW: [arg1:119] RE: [RubyUnit:4203] Re: インストーラ・プロジェクト — "KANEMITSU Masao" <masao-k@...>
金光です。RAAを改善しませんか?
In message <001701c0f156$5c897e50$6601a8c0@DELL>
artonです。
In message <20010610140759.A0FA.ARTON@geocities.co.jp>
[#30188] Net::HTTP の new にパラメタを追加したい — matsui@...
Net::HTTPのnewに1つパラメタを追加した派生クラスを作ってみたのですが、
[#30190] 呼び出し元のクラスを知る方法? — "Shin'ya Adzumi" <adzumi@...>
あづみです。
[#30198] Ruby/Xlib の ArgumentError — FUJIMOTO Hisakuni <hisa@...>
藤本です、こんにちは(数年ぶりにメールします)
[#30206] .dup がされてないらしい ? — Atsushi Kanaya <todo-a2c@...>
金谷です。
[#30215] パス文字列を操作するライブラリはありませんか? — "Kaoru Shirai" <shirai@...1jp.com>
こんにちわ。常日頃 Ruby を愛用させて頂いております。
こんにちは kadu です。
From: kadu <kadu@zb.wakwak.com>
こんにちは kadu です。
[#30224] bug?: $= and string hash key — genta@... (IHA, genta)
はじめまして。伊波と申します。
[#30253] 物権/債権( re :ライセンス) — Tacos <ozaki@...>
[#30270] setup.rb — rubikitch@...
るびきちです。
あおきです。すみません、見逃してました。
From: Minero Aoki <aamine@mx.edit.ne.jp>
ただただしです。
高橋征義です。サブジェクト変えました。
[#30281] オブジェクトのプロパティの名前の取得 — "Inoue" <inoue@...>
井上です。
[#30305] TMarshal — rubikitch@...
るびきちです。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#30312] composing a mail with a big file attached — "Akinori MUSHA" <knu@...>
ちょっとしたサイズのファイルを添付したメールを作成するコードを
あおきです。
[#30333] 共同著作物の謎( re :ライセンス) — Tacos <ozaki@...>
Tacos.self wrote :
ほんの、ちょっとだけ。
[#30345] PS2Linux への Ruby インストール — "T.Shimomura" <redbugml@...>
T.Shimomura です。
[#30362] 1.6.4 と open3 — "Toshihisa Tsuji" <dayan-ml-ruby-list@...>
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
なかだです。
[#30365] Samba+File.stat+ 奇数秒ファイル — Take_tk <ggb03124@...>
[#30369] メーリングリストの検索 — Takahiro Kambe <taca@...>
おはようございます。
[#30374] rdtool's bug? — Takahiro Kambe <taca@...>
こんにちは。
[#30404] setup.rb: pre_*, post_*, task 'all' — rubikitch@...
るびきちです。
[ruby-list:30417] Re: 1.6.4 と open3
なかだです。
At Fri, 29 Jun 2001 12:37:21 +0900,
matz@ruby-lang.org (Yukihiro Matsumoto) wrote:
> そうですね。open3はプロセスの終了を待つわけではありませんか
> ら([ruby-list:30368]は特殊な例です)から、普通の方法では$?が
> 取り出せないのは当たり前です。
そもそも非同期じゃないと意味ないですし、辻さんの例も、Ruby と
sh で実はやってること違いますし。sh もバックグラウンドの exit
code は捨ててるんですよね、やっぱり。
> * pipeに特異メソッドを付加
これは具体的にはどういうのを?
exit code を得るためには popen3 内で wait することはできない
し、忘れずに wait しなければゾンビが残るということで、両方を満
たすためには結局 finalizer を使うしかないはずでは。
内部クラスを作るのをやめて、ちょっとだけシンプルにしてみまし
た。IO#pid= を追加すれば finalizer のところはもうちょっと簡単に
なりますが。
Index: open3.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/lib/open3.rb,v
retrieving revision 1.7
diff -u -2 -p -w -r1.7 open3.rb
--- open3.rb 2001/05/16 09:05:54 1.7
+++ open3.rb 2001/06/29 10:40:46
@@ -9,4 +9,8 @@
module Open3
+ def self.finalizer(pid)
+ proc {Process.waitpid(pid)}
+ end
+
#[stdin, stdout, stderr] = popen3(command);
def popen3(*cmd)
@@ -17,6 +21,4 @@ module Open3
pid = fork{
# child
- fork{
- # grandchild
pw[1].close
STDIN.reopen(pw[0])
@@ -33,12 +35,15 @@ module Open3
exec(*cmd)
}
- exit!
- }
pw[0].close
pr[1].close
pe[1].close
- Process.waitpid(pid)
+ wait = proc {|flag| Process.waitpid2(pid, flag).to_a.pop}
+ fin = Open3.finalizer(pid)
pi = [pw[1], pr[0], pe[0]]
+ pi.each {|p|
+ class << p; self; end.module_eval {define_method(:wait, wait)}
+ ObjectSpace.define_finalizer(p, fin)
+ }
if defined? yield
begin
@@ -46,4 +51,5 @@ module Open3
ensure
pi.each{|p| p.close unless p.closed?}
+ begin Process.waitpid(pid) rescue Errno::ECHILD end
end
end
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦