Hi, 2010/5/5 Sylvain Joyeux <redmine / ruby-lang.org>: > Ruby allows condition variables to be interrupted by exceptions, and it should therefore *work when it is used*. It is a grave bug, as it will lead to weird, hard-to-debug situations for people that use Ruby normal featuresexception handling and multi-threading). Umm, Okay. I'll accept your fix unless there is objection. But, you should *not* use Thread#raise if you are serious about multi- thread programming. It has a potential race condition: 1) an exception is raised by another thread 2) rescue/ensure clause is going to be executed 3) another exception is raised by another thread 4) rescue/ensure clause are not executed An exception raised by another thread cannot be handled safely. > I'm really getting tired of having to deal with multi-threading issues with Ruby. I understand your irrits, but in fact, Ruby's thread is very immature in a sense of both design and implementation. This is unfortunate, but the fact. > If MT is so low-priority in the MRI world, maybe you guys should remove it completely from the interpreter. I think it is good idea, with no apparent sense of irony, though it is of course impossible. > you would have to rewrite the whole of the MRI multi-threading implementation. I think so, honestly. We need contribution from those who are familiar with multi-thread programing. -- Yusuke Endoh <mame / tsg.ne.jp>