[
https://issues.apache.org/jira/browse/QPID-3859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13211937#comment-13211937
]
[email protected] commented on QPID-3859:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2828/
-----------------------------------------------------------
(Updated 2012-02-20 15:53:08.198316)
Review request for Andrew Stitcher, Alan Conway, Gordon Sim, Kenneth Giusti,
and Rafael Schloming.
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
-----
trunk/qpid/cpp/bindings/qpid/CMakeLists.txt 1243858
trunk/qpid/cpp/bindings/qpid/nonblockio/CMakeLists.txt PRE-CREATION
trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/Prong.h PRE-CREATION
trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/Prong.cpp PRE-CREATION
trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/TrackerAdaptor.h
PRE-CREATION
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/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/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/Receive.h
PRE-CREATION
trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/Receive.cpp
PRE-CREATION
trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/ReceiveImpl.h
PRE-CREATION
trunk/qpid/cpp/bindings/qpid/nonblockio/qpid/messaging/synchio/ReceiveImpl.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/qpid.i 1243858
trunk/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt 1243858
trunk/qpid/cpp/bindings/qpid/ruby/README.rdoc 1243858
trunk/qpid/cpp/bindings/qpid/ruby/Rakefile 1243858
trunk/qpid/cpp/bindings/qpid/ruby/examples/drain.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/examples/map_receiver.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/examples/spout.rb 1243858
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
1243858
trunk/qpid/cpp/bindings/qpid/ruby/features/step_definitions/receiver_steps.rb
1243858
trunk/qpid/cpp/bindings/qpid/ruby/features/step_definitions/session_steps.rb
1243858
trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/address.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/connection.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/encoding.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/message.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/receiver.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/sender.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/session.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/utils.rb PRE-CREATION
trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/version.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/ruby.i 1243858
trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/encoding_spec.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/message_spec.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/receiver_spec.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/sender_spec.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/session_spec.rb 1243858
trunk/qpid/cpp/bindings/qpid/ruby/spec/spec_helper.rb 1243858
trunk/qpid/cpp/examples/messaging/CMakeLists.txt 1243858
trunk/qpid/cpp/examples/messaging/Makefile.am 1243858
trunk/qpid/cpp/examples/messaging/extra_dist/Makefile 1243858
trunk/qpid/cpp/examples/messaging/non_blocking.cpp PRE-CREATION
trunk/qpid/cpp/include/qpid/messaging/Session.h 1243858
trunk/qpid/cpp/include/qpid/messaging/Tracker.h PRE-CREATION
trunk/qpid/cpp/src/CMakeLists.txt 1243858
trunk/qpid/cpp/src/Makefile.am 1243858
trunk/qpid/cpp/src/qpid/client/SessionImpl.h 1243858
trunk/qpid/cpp/src/qpid/client/SessionImpl.cpp 1243858
trunk/qpid/cpp/src/qpid/client/amqp0_10/SenderImpl.cpp 1243858
trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.h 1243858
trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp 1243858
trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionTracker.h PRE-CREATION
trunk/qpid/cpp/src/qpid/client/amqp0_10/SessionTracker.cpp PRE-CREATION
trunk/qpid/cpp/src/qpid/messaging/Session.cpp 1243858
trunk/qpid/cpp/src/qpid/messaging/SessionImpl.h 1243858
trunk/qpid/cpp/src/qpid/messaging/Tracker.cpp PRE-CREATION
trunk/qpid/cpp/src/qpid/sys/BlockingQueue.h 1243858
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:[email protected]