[ https://issues.apache.org/jira/browse/QPID-3859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13219479#comment-13219479 ]
jirapos...@reviews.apache.org commented on QPID-3859: ----------------------------------------------------- ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/2828/ ----------------------------------------------------------- (Updated 2012-02-29 20:04:10.044415) Review request for Andrew Stitcher, Alan Conway, Gordon Sim, Kenneth Giusti, and Rafael Schloming. Changes ------- This update completely strips out the Tracker codebase and provides the non-blocking functionality separately. Summary ------- This first pass has full integration of the Tracker type with the Ruby bindings to provide a non-blocking means for responding to incoming messages. After a Receiver is created, a call to Qpid::Messaging.receive will wait for the next message to become available on it. When one is received, a provided lambda function is invoked and the receiver passed to it. The message can then be retrieved, acknowledged, etc. This addresses bug QPID-3859. https://issues.apache.org/jira/browse/QPID-3859 Diffs (updated) ----- trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/TrackerAdaptor.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/TrackerAdaptorImpl.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/TrackerAdaptorImpl.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/TrackerAdaptor.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/Prong.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/Prong.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/CMakeLists.txt 1295123 trunk/qpid/cpp/bindings/qpid/nonblockio/CMakeLists.txt PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/TrackerEventHandler.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/TrackerEventHandler.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/Acknowledge.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/Acknowledge.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/AcknowledgeImpl.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/AcknowledgeImpl.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/BaseThreadedEventHandler.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/BaseThreadedEventHandler.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/BaseTrackerEventHandler.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/BaseTrackerEventHandler.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/GetOrFetchImpl.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/GetOrFetchImpl.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/NextReceiver.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/NextReceiver.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/NextReceiverImpl.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/NextReceiverImpl.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/ReceiverFetch.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/ReceiverFetch.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/ReceiverGet.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/ReceiverGet.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/Send.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/Send.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/SendImpl.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/SendImpl.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/SessionSync.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/SessionSync.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/SessionSyncImpl.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/SessionSyncImpl.cpp PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt 1295123 trunk/qpid/cpp/bindings/qpid/ruby/README.rdoc 1295123 trunk/qpid/cpp/bindings/qpid/ruby/Rakefile 1295123 trunk/qpid/cpp/bindings/qpid/ruby/examples/drain.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/examples/map_receiver.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/examples/spout.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/ext/nonblockio/extconf.rb PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/ext/nonblockio/nonblockio.h PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/ext/nonblockio/nonblockio.c PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/ext/nonblockio/qpid_receiver.c PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/ext/nonblockio/qpid_sender.c PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/ext/nonblockio/qpid_session.c PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/ext/nonblockio/qpid_utils.c PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/ext/nonblockio/test_next_receiver.rb PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/ext/nonblockio/test_receiver_get_and_fetch.rb PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/features/receiving_a_message.feature 1295123 trunk/qpid/cpp/bindings/qpid/ruby/features/step_definitions/receiver_steps.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/features/step_definitions/sender_steps.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/features/step_definitions/session_steps.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/address.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/connection.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/encoding.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/message.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/receiver.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/sender.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/session.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/utils.rb PRE-CREATION trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/version.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/ruby.i 1295123 trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/encoding_spec.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/message_spec.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/receiver_spec.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/sender_spec.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/session_spec.rb 1295123 trunk/qpid/cpp/bindings/qpid/ruby/spec/spec_helper.rb 1295123 Diff: https://reviews.apache.org/r/2828/diff Testing ------- Thanks, Darryl > Provide non-blocking I/O functionality to the Ruby APIs > ------------------------------------------------------- > > Key: QPID-3859 > URL: https://issues.apache.org/jira/browse/QPID-3859 > Project: Qpid > Issue Type: Improvement > Components: Ruby Client > Reporter: Darryl L. Pierce > Priority: Critical > > Provide functionality that overcomes the limitation of the Ruby global > interpreter. Prevent the Ruby VM from become become unresponsive when a > blocking I/O call is made so that other Ruby threads can continue to execute > while the I/O continues. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:dev-subscr...@qpid.apache.org