[#31191] クラスメソッドについて — cyross@...

みなさん、初めまして。

16 messages 2001/09/02
[#31192] Re: クラスメソッドについて — matz@... (Yukihiro Matsumoto) 2001/09/02

まつもと ゆきひろです

[#31196] ありがとうございます( Re: Re: クラスメソッドについて) — cyross@... 2001/09/03

サイロスです。

[#31234] oracle: sub query — Yasushi Shoji <yashi@...>

やすしです。

16 messages 2001/09/04
[#31241] Re: oracle: sub query — Yasushi Shoji <yashi@...> 2001/09/05

At Tue, 4 Sep 2001 19:59:11 +0900,

[#31238] 半角から全角へ変換 — 吉川 正晃 <yosikawa@...>

吉川と申します。こちらには初めての投稿になります。

33 messages 2001/09/05
[#31240] Re: 半角から全角へ変換 — WATANABE Hirofumi <eban@...> 2001/09/05

わたなべです。

[#31244] jcode + String#tr は? — Take_tk <ggb03124@...> 2001/09/05

たけ(tk)です。

[#31245] Re: jcode + String#tr は? — WATANABE Hirofumi <eban@...> 2001/09/05

わたなべです。

[#31280] 掲示板の再読み込み時の問題 — みかみまさと <kofu@...>

こんにちは。いつもお世話になっています、みかみと申します。

13 messages 2001/09/06

[#31283] ruby 1.6.5 preview1 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

17 messages 2001/09/06

[#31377] 添付ライブラリのリファレンス (HTML) — "Sadayuki Sakamoto" <flea@...8.dion.ne.jp>

酒本と申します。

20 messages 2001/09/11

[#31414] ruby 1.6.5 preview — m_seki@...

18 messages 2001/09/14

[#31419] Hash#+ ハッシュの足し算はいかが? — Take_tk <ggb03124@...>

class Hash

12 messages 2001/09/14

[#31508] 全角を半角に変換 — yoshikazu tsubaki <y-tsubaki@...>

#2回目の人ごめんなさい(間違えて2つのMLに送信してしまいました)

14 messages 2001/09/17

[#31626] my LC2001 summary — Minero Aoki <aamine@...>

あおき@結局三日連続で飲んでしまった です。

117 messages 2001/09/28
[#31642] Re: my LC2001 summary — Masaki Suketa <masaki.suketa@...> 2001/09/29

助田です。

[#31663] Re: my LC2001 summary — nobu.nakada@... 2001/09/30

なかだです。

[#31665] Re: my LC2001 summary — TAKAHASHI Masayoshi <maki@...> 2001/09/30

高橋征義です。

[#31672] Re: my LC2001 summary — matz@... (Yukihiro Matsumoto) 2001/10/01

まつもと ゆきひろです

[#31697] RUG (Re: my LC2001 summary) — TAKAHASHI Masayoshi <maki@...> 2001/10/02

高橋征義です。

[#31699] URUG (Re: RUG) — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/10/02

もりきゅうです。

[#31688] bcc (Re: my LC2001 summary) — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/10/01

もりきゅうです。

[#31692] Re: bcc (Re: my LC2001 summary) — "U.Nakamura" <usa@...> 2001/10/01

こんにちは、なかむら(う)です。

[#31779] Re: bcc (Re: my LC2001 summary) — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/10/05

もりきゅうです。

[#31782] Re: bcc (Re: my LC2001 summary) — "T.Kitahara" <tko-k@...> 2001/10/05

はじめまして、Kita といいます。

[#31785] Re: bcc (Re: my LC2001 summary) — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/10/06

もりきゅうです。

[#31805] Re: bcc (Re: my LC2001 summary) — nobu.nakada@... 2001/10/09

なかだです。

[#31806] Re: bcc (Re: my LC2001 summary) — "U.Nakamura" <usa@...> 2001/10/09

こんにちは、なかむら(う)です。

[#31808] Re: bcc (Re: my LC2001 summary) — nobu.nakada@... 2001/10/09

なかだです。

[#31809] Re: bcc (Re: my LC2001 summary) — "U.Nakamura" <usa@...> 2001/10/09

こんにちは、なかむら(う)です。

[#31814] Re: bcc (Re: my LC2001 summary) — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/10/09

もりきゅうです。

[ruby-list:31490] Re: ruby 1.6.5 preview

From: nobu.nakada@...
Date: 2001-09-16 14:01:21 UTC
List: ruby-list #31490
なかだです。

At Sat, 15 Sep 2001 23:32:26 +0900,
matz@ruby-lang.org (Yukihiro Matsumoto) wrote:
> |> 解放するのがスタックだけなら大丈夫みたいですよ。
> |
> | うーん、でもscope,dyna_vars,wrapperなんかはstruct BLOCKから、
> |crefもframeから参照されてるし、frameもstruct BLOCKにコピーされ
> |てるしと思うのですが、やっぱりダメでしょうか。
> 
> ごめん、上の表現の「やっぱりダメでしょうか」の部分の意味が良
> く分かりませんでした。

 スレッドが終了したところで上の四つも放棄した場合に、問題が発
生するのだろうかということです。make testとrubiconで試した限り
では大丈夫そうなんですが。

> | というか、[ruby-list:31417]には[ruby-dev:14764]が一部混ざっ
> |てました。それと[ruby-dev:14764]も案の定バグってました。Procと
> |かBindingを考えてませんでした。
> 
> では、とりあえず取り込まないことにします。

 この変更自体は取り込むつもりがあるということでしょうか。一応
作り直したパッチをつけときます。一つ目がスレッド終了時にスタッ
クを解放するパッチ、二つ目が上記四つも解放できるようにするパッ
チです。

# ruby-devにいった方がいいかな?


Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.203
diff -u -2 -p -r1.203 eval.c
--- eval.c	2001/09/08 14:17:09	1.203
+++ eval.c	2001/09/14 06:49:01
@@ -7420,4 +7420,13 @@ rb_thread_ready(th)
 }
 
+status void
+rb_thread_die(th)
+    rb_thread_t th;
+{
+    th->status = THREAD_KILLED;
+    if (th->stk_ptr) free(th->stk_ptr);
+    th->stk_ptr = 0;
+}
+
 static void
 rb_thread_remove(th)
@@ -7427,5 +7436,5 @@ rb_thread_remove(th)
 
     rb_thread_ready(th);
-    th->status = THREAD_KILLED;
+    rb_thread_die(th);
     th->prev->next = th->next;
     th->next->prev = th->prev;
@@ -8798,5 +8806,5 @@ rb_thread_atfork()
     FOREACH_THREAD(th) {
 	if (th != curr_thread) {
-	    th->status = THREAD_KILLED;
+	    rb_thread_die(th);
 	}
     }

Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.203
diff -u -2 -p -r1.203 eval.c
--- eval.c	2001/09/08 14:17:09	1.203
+++ eval.c	2001/09/14 06:49:01
@@ -7160,7 +7160,11 @@ thread_mark(th)
     rb_gc_mark(th->result);
     rb_gc_mark(th->thread);
+    rb_gc_mark(th->klass);
+    rb_gc_mark(th->errinfo);
+    rb_mark_tbl(th->locals);
+    if (th->status == THREAD_KILLED) return;
+
     if (th->join) rb_gc_mark(th->join->thread);
 
-    rb_gc_mark(th->klass);
     rb_gc_mark(th->wrapper);
     rb_gc_mark((VALUE)th->cref);
@@ -7168,12 +7172,9 @@ thread_mark(th)
     rb_gc_mark((VALUE)th->scope);
     rb_gc_mark((VALUE)th->dyna_vars);
-    rb_gc_mark(th->errinfo);
     rb_gc_mark(th->last_line);
     rb_gc_mark(th->last_match);
-    rb_mark_tbl(th->locals);
 
     /* mark data in copied stack */
     if (th == curr_thread) return;
-    if (th->status == THREAD_KILLED) return;
     if (th->stk_len == 0) return;  /* stack not active, no need to mark. */
     if (th->stk_ptr) {


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

In This Thread