[#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:12728] Re: Process.waitall (Re: [BUG] Process::Status)

From: matz@... (Yukihiro Matsumoto)
Date: 2001-04-02 08:01:25 UTC
List: ruby-dev #12728
まつもと ゆきひろです

In message "[ruby-dev:12727] Re: Process.waitall (Re:  [BUG] Process::Status)"
    on 01/04/02, Yukihiro Matsumoto <matz@zetabits.com> writes:

||> また、以前、提案したように waktall がブロックを持てるように
||> してみました.(そうしなかった理由がありました?)
|
|なんかブロックを持つのは気持ち悪い気がします。全部(all)待つ
|と、個別(each)に待つとは違うような気がするからです。

ちゅーわけで、私の作ったパッチは以下のようなものです。

--- process.c	2001/03/28 08:43:25	1.33
+++ process.c	2001/04/02 07:59:40
@@ -316,8 +316,2 @@
 
-struct waitall_data {
-    int pid;
-    int status;
-    VALUE ary;
-};
-
 static int
@@ -325,14 +319,6 @@
     int key, value;
-    struct waitall_data *data;
+    VALUE data;
 {
-    VALUE pid_status_member;
-
-    if (data->status != -1) return ST_STOP;
-
-    data->pid = key;
-    data->status = value;
-    pid_status_member = rb_ary_new2(2);
-    rb_ary_push(pid_status_member, INT2NUM(key));
-    rb_ary_push(pid_status_member, INT2NUM(value));
-    rb_ary_push(data->ary, pid_status_member);
+    last_status_set(value);
+    rb_ary_push(data, rb_assoc_new(INT2NUM(key), rb_last_status));
     return ST_DELETE;
@@ -348,7 +334,9 @@
 
-    data.status = -1;
-    st_foreach(pid_tbl, wait_each, &data);
-    if (data.status != -1) {
-	last_status_set(data.status);
-	return INT2FIX(data.pid);
+    if (pid_tbl) {
+	data.status = -1;
+	st_foreach(pid_tbl, wait_each, &data);
+	if (data.status != -1) {
+	    last_status_set(data.status);
+	    return INT2FIX(data.pid);
+	}
     }
@@ -418,13 +406,9 @@
 {
-    VALUE pid_status_ary, pid_status_member;
+    VALUE result;
     int pid, status;
-#ifdef NO_WAITPID
-    struct waitall_data data;
 
-    data.ary = pid_status_ary = rb_ary_new();
-    data.status = -1;
-    st_foreach(pid_tbl, waitall_each, &data);
-    if (data.status != -1) {
-	last_status_set(data.status);
-	return pid_status_ary;
+    result = rb_ary_new();
+#ifdef NO_WAITPID
+    if (pid_tbl) {
+	st_foreach(pid_tbl, waitall_each, result);
     }
@@ -442,11 +426,7 @@
 	}
-	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);
-    }
-    if (RARRAY(pid_status_ary)->len != 0)
 	last_status_set(status);
+	rb_ary_push(result, rb_assoc_new(INT2NUM(pid), rb_last_status));
+    }
 #else
-    pid_status_ary = rb_ary_new();
+    rb_last_status = Qnil;
     for (pid = -1;;) {
@@ -458,9 +438,6 @@
 	}
-	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);
+	rb_ary_push(result, rb_assoc_new(INT2NUM(pid), rb_last_status));
     }
 #endif
-    return pid_status_ary;
+    return result;
 }

In This Thread