From: Tietew Date: 2002-08-21T20:44:22+09:00 Subject: [ruby-dev:18058] Re: [Bug] rb_thread_create sometimes returns 0 --------_3D6378D6288004C97C90_MULTIPART_MIXED_ Content-Type: text/plain; charset="ISO-2022-JP" Content-Transfer-Encoding: 7bit On Wed, 21 Aug 2002 16:44:36 +0900 matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > ||次のコードで,rb_thread_create が 0 を返す(rb_thread_start_0 の > ||コメントで not reached となっている部分を通過する!)ために > || undefined method `value' for false (NameError) > ||という意味不明な例外が発生してしまうことがあります。 : > |手元ではそのままでコンパイルできませんでしたし、少々手を加え > |てコンパイルを通るようにしたものは例外を発生させませんでした。 > |というわけで、もうちょっと情報がないとデバッグできません。 すみません。かなり削ってしまった&&元ソースはC++だったもので。 遅ればせながら再現できるソースを付けます。 # 今更ですが 1.6 / 1.7 両方該当です > その後、いろいろ試してみると以下の修正で状況が変化するような > 気がします。試してみてください。 流れ的には正しくなりましたが,Thread#join で fatal が再発生しま せんでした。 > - while (curr_thread->status == THREAD_KILLED) { > - curr_thread = curr_thread->prev; > + curr = curr_thread; > + while (curr->status == THREAD_KILLED) { > + curr = curr_thread->prev; ^^^^^^^^^^^ <= ここは curr の間違い? > } —[ Tietew ]—————————————————————————— メ : tietew@tietew.net / tietew@raug.net / tietew@masuclub.net ホペ: http://www.tietew.net/ Tietew Windows Lab. http://www.masuclub.net/ 鱒倶楽部 指紋: 26CB 71BB B595 09C4 0153 81C4 773C 963A D51B 8CAA --------_3D6378D6288004C97C90_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="extconf.rb" Content-Disposition: attachment; filename="extconf.rb" Content-Transfer-Encoding: base64 cmVxdWlyZSAnbWttZicKY3JlYXRlX21ha2VmaWxlKCdmYXRhbCcpCg== --------_3D6378D6288004C97C90_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="fatal.c" Content-Disposition: attachment; filename="fatal.c" Content-Transfer-Encoding: base64 I2luY2x1ZGUgPHJ1YnkuaD4KCnN0YXRpYyBWQUxVRSBmYXRhbChWQUxVRSB2KQp7CglyYl9mYXRh bCgidGVzdCIpOwp9Cgp2b2lkIEluaXRfZmF0YWwoKQp7CglyYl9kZWZpbmVfZ2xvYmFsX2Z1bmN0 aW9uKCJmYXRhbCIsIGZhdGFsLCAwKTsKfQo= --------_3D6378D6288004C97C90_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="fatal.rb" Content-Disposition: attachment; filename="fatal.rb" Content-Transfer-Encoding: base64 cmVxdWlyZSAnLi9mYXRhbC5zbycKClRocmVhZC5zdGFydCBkbwogIGZhdGFsCmVuZC5qb2luCg== --------_3D6378D6288004C97C90_MULTIPART_MIXED_--