From: Tanaka Akira Date: 2004-12-05T01:19:40+09:00 Subject: [ruby-dev:25049] Re: temporal locking already locked string on simultaneous write In article <1102176395.383559.21204.nullmailer@x31.priv.netlab.jp>, Yukihiro Matsumoto writes: > |ひとつは、dup&freeze&klass=0 した文字列オブジェクトを使うものです。 > 前者の代わりに、いつの間にかうやむやにして忘れ去ってしまった > [ruby-dev:24441] が良いのかもしれません。これだと変更が行わ > れない限り文字列本体のコピーは行いませんから(オブジェクトの > 割り当てはあるがこれはあんまり重くないはず)、性能上の問題も > それほどないと思います。 [ruby-dev:24441] と似ているのはたしかなのですが、rb_str_shared_replace を使うと、もともとの文字列が空になってしまうため、ひとつの write があ る文字列を使っているときに他の write がその文字列を参照すると、空の文 字列を参照するはめになるように思います。 試してないんで勘違いしてるかも知れませんが。 -- [田中 哲][たなか あきら][Tanaka Akira]