sorry for late response.
I have no objection about this patch. thank you.

one question.

```
	list_for_each_safe(&mutex->waitq, cur, next, node) {
	    list_del_init(&cur->node);
	    switch (cur->th->state) {
	    case THREAD_KILLED:
		continue;
	    case THREAD_STOPPED:
	    case THREAD_RUNNABLE:
	    case THREAD_STOPPED_FOREVER:
		rb_threadptr_interrupt(cur->th);
		goto found;
	    }
	}
```
`rb_mutex_lock()` set `th->status` as `THREAD_STOPPED_FOREVER` before
native sleep, but the above code quoted from `rb_mutex_unlock_th()`.

What kind of situation do you assume when the thread status is other
than `THREAD_STOPPED_FOREVER`?

Thanks,
Koichi

-- 
// SASADA Koichi at atdot dot net

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>