You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "jiraposter@reviews.apache.org (Commented) (JIRA)" <ji...@apache.org> on 2012/03/05 20:53:59 UTC

[jira] [Commented] (QPID-3859) Provide non-blocking I/O functionality to the Ruby APIs

    [ https://issues.apache.org/jira/browse/QPID-3859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13222559#comment-13222559 ] 

jiraposter@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-03-05 19:53:21.842268)


Review request for Andrew Stitcher, Alan Conway, Gordon Sim, Kenneth Giusti, and Rafael Schloming.


Changes
-------

Added support for the automake environment.


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/CMakeLists.txt 1297042 
  trunk/qpid/cpp/bindings/qpid/Makefile.am 1297042 
  trunk/qpid/cpp/bindings/qpid/nonblockio/CMakeLists.txt PRE-CREATION 
  trunk/qpid/cpp/bindings/qpid/nonblockio/Makefile.am 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/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 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/Makefile.am 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/README.rdoc 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/Rakefile 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/examples/drain.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/examples/map_receiver.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/examples/spout.rb 1297042 
  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 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/features/step_definitions/receiver_steps.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/features/step_definitions/sender_steps.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/features/step_definitions/session_steps.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/address.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/connection.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/encoding.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/message.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/receiver.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/sender.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/session.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/utils.rb PRE-CREATION 
  trunk/qpid/cpp/bindings/qpid/ruby/lib/qpid/version.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/ruby.i 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/encoding_spec.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/message_spec.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/receiver_spec.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/sender_spec.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/spec/qpid/session_spec.rb 1297042 
  trunk/qpid/cpp/bindings/qpid/ruby/spec/spec_helper.rb 1297042 
  trunk/qpid/cpp/configure.ac 1297042 

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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org