なかだです。

At Wed, 5 Nov 2003 17:05:03 +0900,
Hidetoshi NAGAI wrote:
> @@ -8629,6 +8651,16 @@
>      next = 0;
>      curr = curr_thread;		/* starting thread */
>  
> +#if defined(HAVE_LIBPTHREAD) && defined(USE_PTHREAD_EXTLIB)
> +    if ((st = pthread_mutex_trylock(&mtx)) == EBUSY) {
> +	if (pthread_self() != thid) {
> +	    return;
> +	}
> +    } else {
> +	thid = pthread_self();
> +    }
> +#endif
> +
>      while (curr->status == THREAD_KILLED) {
>  	curr = curr->prev;
>      }

この部分ですが、rb_thread_schedule()への再入だけではなく、別の
pthread内でのrubyスレッドの切替え自体が危険じゃないでしょうか。
そう考えると、ロックじゃなくて最初にスレッドIDを保存しておいて、
単純に現在のスレッドと一致しなかったら戻る、だけでもよさそうな
気がして来ました。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦