From: matz@... (Yukihiro Matsumoto) Date: 1998-03-23T17:16:40+09:00 Subject: [ruby-dev:1899] Re: experimantal release 1.1b9_04 まつもと ゆきひろです In message "[ruby-dev:1885] Re: experimantal release 1.1b9_04" on 98/03/20, WATANABE Hirofumi writes: |わたなべです. | |1.1b8 で eval.c:thread_free() の中で free(th); するようにな |りましたが, cygwin32 では以下の script が SEGV になります. |Linux でも後につけたような変更で再現しました. うーん.うちでは再現しませんでした.なぜだろう. で,現象を推測すると thread_freeでmain_threadまでfreeされる その後なんらかのタイミングでthread_scheduleが呼ばれる freeされたmain_threadをアクセスしてSEGV という段階だと考えられます.ので,以下のようなパッチでどうで しょう? diff -w -u -1 -r1.1.1.2.2.24 eval.c --- eval.c 1998/03/16 06:37:10 1.1.1.2.2.24 +++ eval.c 1998/03/23 08:15:19 @@ -5077,3 +5077,3 @@ th->stk_ptr = 0; - free(th); + if (th != main_thread) free(th); }