[#25279] mkmf - DESTDIR is ignored — dellin <dellin_geo@...>

こんxxは。dellinです。

14 messages 2000/10/02

[#25311] =begin, =end — m_seki@...

27 messages 2000/10/04
[#25315] Re: =begin, =end — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/10/05

なひです.

[#25317] Re: =begin, =end — rubikitch <rubikitch@...> 2000/10/05

From: "NAKAMURA, Hiroshi" <nakahiro@sarion.co.jp>

[#25319] Re: =begin, =end — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/10/05

なひです.

[#25321] Re: =begin, =end — rubikitch <rubikitch@...> 2000/10/05

From: "NAKAMURA, Hiroshi" <nakahiro@sarion.co.jp>

[#25341] Re: =begin, =end — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/10/06

なひです.こちらはRDの話.

[#25417] Re: mswin32 組み込み用 Ruby — toyofuku@...

豊福です。遅い反応でごめんなさい。

19 messages 2000/10/10
[#25423] Re: mswin32 組み込み用 Ruby — nobu.nakada@... 2000/10/10

なかだです。

[#25471] Re: mswin32 組み込み用 Ruby — toyofuku@... 2000/10/16

豊福です。

[#25474] 始めまして — matsue <mattue@...>

松江と言います。お初になります。

15 messages 2000/10/16

[#25505] media watch 2000.10.18 — Noritsugu Nakamura <nnakamur@...>

26 messages 2000/10/18
[#25522] Re: media watch 2000.10.18 — Noritsugu Nakamura <nnakamur@...> 2000/10/19

[#25540] Re: media watch 2000.10.18 — Shin-ichiro HARA <sinara@...> 2000/10/20

原です。

[#25567] Ruby で遅い処理は? — Yasuki <yasuki@...>

Yasukiです.

16 messages 2000/10/22

[#25599] 原先生の本 — WATANABE Tetsuya <tetsu@...>

渡辺哲也です。

44 messages 2000/10/25
[#25611] Re: 原先生の本 — Shin-ichiro Hara <sinara@...> 2000/10/26

原です。

[#25733] Re: 原先生の本 — keiju@... (石塚圭樹) 2000/11/01

けいじゅ@日本ラショナルソフトウェアです.

[#25738] Re: 原先生の本 — Shin-ichiro HARA <sinara@...> 2000/11/01

原です。

[#25628] RWiki 1.0 and てんこもりぱっく — Masatoshi SEKI <m_seki@...>

14 messages 2000/10/26

[#25633] ping.rb の使い方 — goto@...

お世話になります。後藤です。

20 messages 2000/10/27

[#25674] EOF before end of embedded document — YANAGAWA Kazuhisa <kjana@...>

>od -c foo

15 messages 2000/10/28
[#25678] Re: EOF before end of embedded document — matz@... (Yukihiro Matsumoto) 2000/10/28

まつもと ゆきひろです

[ruby-list:25538] open3.rb

From: Takaaki Tateishi <ttate@...>
Date: 2000-10-19 19:58:09 UTC
List: ruby-list #25538
立石です.

open3.rbについての修正案です.
Open3.popen3では,forkを行なってexecすることで3つの入出力を獲得
していますが,waitをかけていないために,waitを忘れると,ゾンビが
大量に発生してしまうことがありました.

# mod_rubyを使ってる時にやってしまいました.(x_x;

そこで,以下のようにしてみたのですが,どうでしょうか?
  popen3(hogehoge) do |fin,fout,ferr|
    ...
  end
という感じに使うことができます.


module Open3
  #[stdin, stdout, stderr] = popen3(command);
  def popen3(cmd)
    pw = IO::pipe   # pipe[0] for read, pipe[1] for write
    pr = IO::pipe
    pe = IO::pipe
    res = nil

    pid = fork
    if pid == nil then # child
      pw[1].close
      STDIN.reopen(pw[0])
      pw[0].close

      pr[0].close
      STDOUT.reopen(pr[1])
      pr[1].close

      pe[0].close
      STDERR.reopen(pe[1])
      pe[1].close

      exec(cmd)
      exit
    else
      pw[0].close
      pr[1].close
      pe[1].close
      if( iterator? )
	begin
	  yield(pw[1], pr[0], pe[0])
	ensure
	  pw[1].close if( ! pw[1].closed? )
	  pr[0].close if( ! pr[0].closed? )
	  pe[0].close if( ! pe[0].closed? )
	  Process.waitpid(pid,0)
	end
	res = nil
      else
	res = [pw[1], pr[0], pe[0]]
      end
    end
    res
  end
  module_function :popen3
end

In This Thread

Prev Next