Hi,

2010/5/7 Caleb Clausen <vikkous / gmail.com>:
>> This is a serious issue, but if this is fixed to ensure to lock
>> the mutex by ignoring an exception, the process can not be
>> stopped by Ctrl+C. ?It is another serious issue.
>
> I can't say I entirely understand. Do you mean that ignoring the 2nd
> Thread#raise causes ctrl-c to be ignored?

Exactly.


> Can a special case for
> ctrl-c be made? Is there a more complete discussion of this issue
> somewhere?

Sorry, this is discussed in Japanese closed IRC with some committers
including ko1, akr and kosaki.  To sum up the discussion, we thought
convenience of Ctrl+C is more important (for casual users) then
consistency of CV#wait.
And, a techie who want consistency of CV#wait can achieve it by
avoiding Thread#raise and by paying attention to signal.


>> In addition, if we are really serious for using CV, signal must
>> not be converted to an exception, such as SIGINT and Interrupted.
>> It can be achieved by Kernel#trap, i.e., trap(:INT) {}, but it
>> is too stoic to enjoy programming...
>
> All signals are sent to the main thread, aren't they? So at least the
> user needs to worry about this only if using a CV in the main thread.

Exactly.  You are really quine to understand :-)

-- 
Yusuke Endoh <mame / tsg.ne.jp>