[#30220] schedule for Ruby 1.8.6 — "Akinori MUSHA" <knu@...>

 ruby-core を読んでいない人もいると思うので、ここでもアナウンス

20 messages 2007/01/30

[ruby-dev:30183] Re: Open3.popen3 の終了処理

From: Nobuyoshi Nakada <nobu@...>
Date: 2007-01-24 15:36:51 UTC
List: ruby-dev #30183
なかだです。

At Wed, 24 Jan 2007 23:42:02 +0900,
とみたまさひろ wrote in [ruby-dev:30181]:
> Open3.popen3 がコマンドの exec に失敗した場合に、通常の終了処理を行なっ
> てしまい、at_exit 等が実行されてしまいます。

どっちかというと、fork/execのない環境でも使えるように
Process.spawnを拡張したいとこですが。

> # エラーメッセージの形式が変わってしまいますけど…。

こういうのはどうでしょう。


Index: lib/open3.rb
===================================================================
--- lib/open3.rb	(revision 11540)
+++ lib/open3.rb	(working copy)
@@ -65,7 +65,9 @@ module Open3
 	pe[1].close
 
+	at_exit {exit!(false)}
+	at_exit {raise $!}
 	exec(*cmd)
       }
-      exit!(0)
+      exit!(true)
     }
 


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread