[ 
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

Reply via email to