[#14614] 大小文字を無視した比較で ' 帰 ' == ' 蟻 ' ? — "K.Umakoshi" <pegacorn@...>

こんにちは。

18 messages 2001/09/02
[#14615] Re: 大小文字を無視した比較で ' 帰 ' == ' 蟻 ' ? — matz@... (Yukihiro Matsumoto) 2001/09/02

まつもと ゆきひろです

[#14662] How to abondon saved uid privilege — nobu.nakada@...

なかだです。

60 messages 2001/09/05
[#14663] Re: How to abondon saved uid privilege — nagai@... 2001/09/05

永井@知能.九工大です.

[#14672] Re: How to abondon saved uid privilege — nobu.nakada@... 2001/09/05

なかだです。

[#14677] Re: How to abondon saved uid privilege — nagai@... 2001/09/05

永井@知能.九工大です.

[#14678] Re: How to abondon saved uid privilege — matz@... (Yukihiro Matsumoto) 2001/09/05

まつもと ゆきひろです

[#14680] Re: How to abondon saved uid privilege — nagai@... 2001/09/05

永井@知能.九工大です.

[#14685] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/05

In message <20010905184635H.nagai@ai.kyutech.ac.jp>

[#14687] Re: How to abondon saved uid privilege — "Akinori MUSHA" <knu@...> 2001/09/05

 ちょっと脱線します。 :)

[#14688] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/05

In message <86ofopevkv.wl@archon.local.idaemons.org>

[#14691] Re: How to abondon saved uid privilege — matz@... (Yukihiro Matsumoto) 2001/09/05

まつもと ゆきひろです

[#14693] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/05

In message <999700675.662743.18683.nullmailer@ev.netlab.jp>

[#14703] Re: How to abondon saved uid privilege — nagai@... 2001/09/06

永井@知能.九工大です.

[#14707] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/06

In message <20010906111828R.nagai@ai.kyutech.ac.jp>

[#14708] Re: How to abondon saved uid privilege — nagai@... 2001/09/06

永井@知能.九工大です.

[#14709] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/06

In message <20010906132656Z.nagai@ai.kyutech.ac.jp>

[#14728] Re: How to abondon saved uid privilege — nagai@... 2001/09/06

永井@知能.九工大です.

[#14729] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/06

In message <20010906174440D.nagai@ai.kyutech.ac.jp>

[#14732] Re: How to abondon saved uid privilege — nagai@... 2001/09/06

永井@知能.九工大です.

[#14774] Re: How to abondon saved uid privilege — nagai@... 2001/09/12

永井@知能.九工大です.

[#14841] Re: How to abondon saved uid privilege — nagai@... 2001/10/02

永井@知能.九工大です.

[#15026] setuid and seteuid — nagai@... 2001/11/02

永井@知能.九工大です.

[#15030] Re: setuid and seteuid — Tanaka Akira <akr@...17n.org> 2001/11/03

In article <20011102175733K.nagai@ai.kyutech.ac.jp>,

[#15032] Re: setuid and seteuid — nagai@... 2001/11/03

永井@知能.九工大です.

[#14743] [BUG] $_ on thread switching — nobu.nakada@...

なかだです。

24 messages 2001/09/07
[#14746] Re: [BUG] $_ on thread switching — nobu.nakada@... 2001/09/07

なかだです。

[#14747] Re: [BUG] $_ on thread switching — matz@... (Yukihiro Matsumoto) 2001/09/07

まつもと ゆきひろです

[#14748] Re: [BUG] $_ on thread switching — nobu.nakada@... 2001/09/08

なかだです。

[#14750] Re: [BUG] $_ on thread switching — matz@... (Yukihiro Matsumoto) 2001/09/08

まつもと ゆきひろです

[#14752] Re: [BUG] $_ on thread switching — nobu.nakada@... 2001/09/08

なかだです。

[#14753] Re: [BUG] $_ on thread switching — matz@... (Yukihiro Matsumoto) 2001/09/08

まつもと ゆきひろです

[#14755] Re: [BUG] $_ on thread switching — nobu.nakada@... 2001/09/08

なかだです。

[ruby-dev:14747] Re: [BUG] $_ on thread switching

From: matz@... (Yukihiro Matsumoto)
Date: 2001-09-07 19:39:07 UTC
List: ruby-dev #14747
まつもと ゆきひろです

In message "[ruby-dev:14746] Re: [BUG] $_ on thread switching"
    on 01/09/08, nobu.nakada@nifty.ne.jp <nobu.nakada@nifty.ne.jp> writes:

| rb_thread_restore_context()で$_, $~を書き戻すときに、別の
|SCOPEを使っているスレッド同士では復元できないということのようで
|すが、どう直せばいいもんだか。

ほぼ[ruby-list:14746]と同じ内容ですね。

| これって結局、スレッドローカルじゃなきゃいけない$_や$~がスレッ
|ド間で共有されなきゃいけないruby_scope->local_varsにある、とい
|うところに問題がありそうな気がするんですが、どこに持っていった
|らいいのやら。FRAMEあたりかなぁ。

その後、歯磨きしながら考えてたら、以下のパッチで直りそうです。
駆け込みでやや不安なのですが。

--- ../ruby1.6/eval.c	Thu Sep  6 16:47:46 2001
+++ eval.c	Sat Sep  8 04:32:01 2001
@@ -7154,6 +7267,7 @@ rb_thread_save_context(th)
 {
     VALUE *pos;
     int len;
+    static VALUE tval;
 
     len = stack_length(&pos);
     th->stk_len = 0;
@@ -7181,8 +7295,12 @@ rb_thread_save_context(th)
     th->tracing = tracing;
     th->errinfo = ruby_errinfo;
     th->last_status = rb_last_status;
-    th->last_line = rb_lastline_get();
-    th->last_match = rb_backref_get();
+    tval = rb_lastline_get();
+    rb_lastline_set(th->last_line);
+    th->last_line = tval;
+    tval = rb_backref_get();
+    rb_backref_set(th->last_match);
+    th->last_match = tval;
     th->safe = ruby_safe_level;
 
     th->file = ruby_sourcefile;
@@ -7246,6 +7364,7 @@ rb_thread_restore_context(th, exit)
     VALUE v;
     static rb_thread_t tmp;
     static int ex;
+    static VALUE tval;
 
     if (!th->stk_ptr) rb_bug("unsaved context");
 
@@ -7282,8 +7401,12 @@ rb_thread_restore_context(th, exit)
     FLUSH_REGISTER_WINDOWS;
     MEMCPY(tmp->stk_pos, tmp->stk_ptr, VALUE, tmp->stk_len);
 
+    tval = rb_lastline_get();
     rb_lastline_set(tmp->last_line);
+    tmp->last_line = tval;
+    tval = rb_backref_get();
     rb_backref_set(tmp->last_match);
+    tmp->last_match = tval;
 
     longjmp(tmp->context, ex);
 }

In This Thread