Hide Forgot
Description of problem: Using a sess.nextReceiver().fetch causes other threads to be blocked. A workaround for current implementation is: receiver = Cqpid::Receiver.new while 1 do break if @session.nextReceiver(receiver,Cqpid::Duration.SECOND) sleep 0.01 end msg = receiver.fetch() From Ted: Ruby 1.9 has a way to say "this function call may block, don't block ruby threads" however for Ruby 1.8, we've got to find a better way to deal with this issue. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
This issue also causes clients to block signals like CTRL-C. So when caught in a fetch() blocking call the user can't CTRL-C out of the program.