[#12763] NameError (Re: [ruby-list:29101] Re: nil.to_f) — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

24 messages 2001/04/04
[#12765] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — "K.Kosako" <kosako@...> 2001/04/04

Yukihiro Matsumotoさんの

[#12767] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — matz@... (Yukihiro Matsumoto) 2001/04/04

まつもと ゆきひろです

[#12787] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — "K.Kosako" <kosako@...> 2001/04/06

Yukihiro Matsumotoさんの

[#12789] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — matz@... (Yukihiro Matsumoto) 2001/04/06

まつもと ゆきひろです

[#12790] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — "K.Kosako" <kosako@...> 2001/04/06

Yukihiro Matsumotoさんの

[#12792] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — matz@... (Yukihiro Matsumoto) 2001/04/06

まつもと ゆきひろです

[#12838] Re: NameError (Re: [ruby-list:29101] Re: nil.to_f) — "K.Kosako" <kosako@...> 2001/04/10

Yukihiro Matsumotoさんの

[#12795] recursive malloc / fork deadlock / thread deadlock — "Akinori MUSHA" <knu@...>

 添付のスクリプトで、いくつかのプラットフォームで問題が発生する

43 messages 2001/04/07
[#12799] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/07

まつもと ゆきひろです

[#12801] Re: recursive malloc / fork deadlock / thread deadlock — nobu.nakada@... 2001/04/08

なかだです。

[#12802] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/09

まつもと ゆきひろです

[#12822] Re: recursive malloc / fork deadlock / thread deadlock — nobu.nakada@... 2001/04/09

なかだです。

[#12827] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/09

まつもと ゆきひろです

[#12836] Re: recursive malloc / fork deadlock / thread deadlock — nobu.nakada@... 2001/04/10

なかだです。

[#12840] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/10

まつもと ゆきひろです

[#12852] Re: recursive malloc / fork deadlock / thread deadlock — nobu.nakada@... 2001/04/10

なかだです。

[#12854] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/10

まつもと ゆきひろです

[#12857] Re: recursive malloc / fork deadlock / thread deadlock — nobu.nakada@... 2001/04/10

なかだです。

[#12859] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/10

まつもと ゆきひろです

[#12862] Re: recursive malloc / fork deadlock / thread deadlock — GOTOU Yuuzou <gotoyuzo@...> 2001/04/10

ごとうゆうぞうです。

[#12866] Re: recursive malloc / fork deadlock / thread deadlock — matz@... (Yukihiro Matsumoto) 2001/04/10

まつもと ゆきひろです

[#12878] Re: recursive malloc / fork deadlock / thread deadlock — GOTOU Yuuzou <gotoyuzo@...> 2001/04/11

ごとうゆうぞうです。

[#12888] Re: recursive malloc / fork deadlock / thread deadlock — GOTOU Yuuzou <gotoyuzo@...> 2001/04/11

ごとうゆうぞうです。

[#12892] Re: recursive malloc / fork deadlock / thread deadlock — Takahiro Kambe <taca@...> 2001/04/12

完全に理解せずに書いています。

[#12895] Re: recursive malloc / fork deadlock / thread deadlock — Jun Adachi <adachi@...> 2001/04/12

安達@沖データと申します。

[#12898] Re: recursive malloc / fork deadlock / thread deadlock — GOTOU Yuuzou <gotoyuzo@...> 2001/04/12

ごとうゆうぞうです。

[#12830] 1.6.4 preview — "Akinori MUSHA" <knu@...>

 そろそろ FreeBSD 4.3-RELEASE 前の ports のフリーズが迫っている

23 messages 2001/04/09
[#12844] Re: 1.6.4 preview — matz@... (Yukihiro Matsumoto) 2001/04/10

まつもと ゆきひろです

[#12921] ObjectSpace.each_object(Symbol) — keiju@... (Keiju ISHITSUKA)

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

23 messages 2001/04/13
[#12923] Re: ObjectSpace.each_object(Symbol) — matz@... (Yukihiro Matsumoto) 2001/04/13

まつもと ゆきひろです

[#12928] Re: ObjectSpace.each_object(Symbol) — Hisayasu Nakao <h-nakao@...> 2001/04/13

中尾@富士通です。

[#12929] Re: ObjectSpace.each_object(Symbol) — matz@... (Yukihiro Matsumoto) 2001/04/13

まつもと ゆきひろです

[#12934] Re: ObjectSpace.each_object(Symbol) — keiju@... (石塚圭樹) 2001/04/13

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

[#12941] Re: ObjectSpace.each_object(Symbol) — matz@... (Yukihiro Matsumoto) 2001/04/13

まつもと ゆきひろです

[ruby-dev:12719] Process.waitall (Re: [BUG] Process::Status)

From: Koji Arai <JCA02266@...>
Date: 2001-04-01 16:59:17 UTC
List: ruby-dev #12719
新井です。

Process.waitall が ステータス値を返していたので 
Process::Status を返すようにしました.

また、以前、提案したように waktall がブロックを持てるように
してみました.(そうしなかった理由がありました?)

5.times {|n| fork { exit n } }
p Process.waitall {|pid, status|
  case
  when status.signaled?
    p "child #{pid} was killed by signal #{status.termsig}"
  when status.stopped?
    # 実際には Process.wait を使用しているので,ここに来ることはない
    p "child #{pid} was stopped by signal #{status.stopsig}"
  when status.exited?
    p "child #{pid} exited normaly. status=#{status.exitstatus}"
  when status.coredump?
    p "child #{pid} dumped core."
  else
    p "unknown status %#x" % status.to_i
  end
}

=> "child 4930 exited normaly. status=4"
   "child 4929 exited normaly. status=3"
   "child 4928 exited normaly. status=2"
   "child 4927 exited normaly. status=1"
   "child 4926 exited normaly. status=0"
[nil, nil, nil, nil, nil]

ブロックを伴う場合の waitall の戻り値を各ブロックの戻り値の
配列にしましたが、これは余計だったような気が今はしてます。

In message "[ruby-dev:12715] [BUG] Process::Status"
  on 01 Apr 2001 18:38:33 +0900,
  Koji Arai <JCA02266@nifty.ne.jp> wrote:
> 新井です。
> 
> Process::Status にバグがありました。

このパッチも含みます.


Index: process.c
===================================================================
RCS file: /src/ruby/process.c,v
retrieving revision 1.33
diff -u -p -u -r1.33 process.c
--- process.c	2001/03/28 08:43:25	1.33
+++ process.c	2001/04/01 16:54:33
@@ -170,7 +170,7 @@ pst_wifsignaled(st)
 {
     int status = NUM2INT(st);
 
-    if (WIFSIGNALED(st))
+    if (WIFSIGNALED(status))
 	return Qtrue;
     else
 	return Qfalse;
@@ -418,6 +418,8 @@ proc_waitall()
 {
     VALUE pid_status_ary, pid_status_member;
     int pid, status;
+
+    rb_last_status = Qnil;
 #ifdef NO_WAITPID
     struct waitall_data data;
 
@@ -440,13 +442,13 @@ proc_waitall()
 	    }
 	    rb_sys_fail(0);
 	}
-	pid_status_member = rb_ary_new2(2);
-	rb_ary_push(pid_status_member, INT2NUM(pid));
-	rb_ary_push(pid_status_member, INT2NUM(status));
-	rb_ary_push(pid_status_ary, pid_status_member);
+        last_status_set(status);
+        pid_status_member = rb_assoc_new(INT2NUM(pid), rb_last_status);
+        if (rb_block_given_p())
+            rb_ary_push(pid_status_ary, rb_yield(pid_status_member));
+        else
+            rb_ary_push(pid_status_ary, pid_status_member);
     }
-    if (RARRAY(pid_status_ary)->len != 0)
-	last_status_set(status);
 #else
     pid_status_ary = rb_ary_new();
     for (pid = -1;;) {
@@ -456,10 +458,12 @@ proc_waitall()
 		break;
 	    rb_sys_fail(0);
 	}
-	pid_status_member = rb_ary_new2(2);
-	rb_ary_push(pid_status_member, INT2NUM(pid));
-	rb_ary_push(pid_status_member, INT2NUM(status));
-	rb_ary_push(pid_status_ary, pid_status_member);
+        last_status_set(status);
+        pid_status_member = rb_assoc_new(INT2NUM(pid), rb_last_status);
+        if (rb_block_given_p())
+            rb_ary_push(pid_status_ary, rb_yield(pid_status_member));
+        else
+            rb_ary_push(pid_status_ary, pid_status_member);
     }
 #endif
     return pid_status_ary;

--
新井康司 (Koji Arai)

In This Thread