[
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]