In article <1102133507.339625.10453.nullmailer / x31.priv.netlab.jp>, Yukihiro Matsumoto <matz / ruby-lang.org> writes: > |問題は、write が文字列に対して読み込みしか行わないのに排他的ロックを行っ > |ていることですが、どうしたもんでしょうか? > > どうしたもんでしょうかねえ。カウントロックにすればよいのかも > しれませんが、スペースが空いてませんねえ。 どう実装するかはさておき、ロックの方向性で進めるのであれば、カウンタを つけて共有ロックというのは自然ですね。 ロックでない方向性は 2つほど思い当たります。 ひとつは、dup&freeze&klass=0 した文字列オブジェクトを使うものです。 もうひとつは、実際に書き込むところまで文字列オブジェクトで渡していくと いうものです。 前者は、オブジェクトやメモリの確保のコストがかかりそうです。 後者は、関数のインターフェースをいくつか変えないといけなさそうです。 -- [田中 哲][たなか あきら][Tanaka Akira]