[ 
https://issues.apache.org/jira/browse/PROTON-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alan Conway updated PROTON-1064:
--------------------------------
    Description: 
Refactor ruby binding to use a native Ruby IO driver with the C 
pn_connection_driver for AMQP protocol support. 

Ruby ConnectionDriver - drive a single connection, single threaded
- Use any ruby IO subclass
- Works with native Ruby polling primitives
- Avoids Ruby threading issue with GVL (all IO is done in Ruby) 
- Thread safe function injection for MT use.

Client/server examples using native ruby connect,  multi-threaded broker 
example using ruby listen. 

  was:
Add a simple integration between a ruby IO object and a proton engine, without 
using the reactor.  Use the same handler classes for application logic but pump 
data directly to/from a single IO instance instead of using the selector.

- Avoids issue with GVL (since all IO is done in proton) 
- Can integrate with any ruby IO subclass (not just sockets opened by the 
reactor.) 
- Can run engines in separate ruby threads for concurrency.

A similar class is available in the C++ and Go bindings.


        Summary: ruby: native IO based on connection_driver.c   (was: ruby: add 
ConnectionEngine alterntive integration style)

> ruby: native IO based on connection_driver.c 
> ---------------------------------------------
>
>                 Key: PROTON-1064
>                 URL: https://issues.apache.org/jira/browse/PROTON-1064
>             Project: Qpid Proton
>          Issue Type: Improvement
>          Components: ruby-binding
>    Affects Versions: 0.11.0
>            Reporter: Alan Conway
>            Assignee: Alan Conway
>             Fix For: Future
>
>
> Refactor ruby binding to use a native Ruby IO driver with the C 
> pn_connection_driver for AMQP protocol support. 
> Ruby ConnectionDriver - drive a single connection, single threaded
> - Use any ruby IO subclass
> - Works with native Ruby polling primitives
> - Avoids Ruby threading issue with GVL (all IO is done in Ruby) 
> - Thread safe function injection for MT use.
> Client/server examples using native ruby connect,  multi-threaded broker 
> example using ruby listen. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to