[ https://issues.apache.org/jira/browse/PROTON-752?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14219509#comment-14219509 ]
Darryl L. Pierce commented on PROTON-752: ----------------------------------------- I did some googling [1] and couldn't find an explicit answer to Rafi's question above; i.e., how you would state in the descriptor that Ruby's GIL should be relinquished or not. I also don't see a similar option in the Swig ruby support that Python has (the "-thread" option [2]). [1] http://www.swig.org/Doc2.0/SWIGDocumentation.html#Ruby [2] $ swig -python -help ; swig -ruby -help > Ruby: Cproton calls don't unlock the GIL for blocking / long-running > operations > ------------------------------------------------------------------------------- > > Key: PROTON-752 > URL: https://issues.apache.org/jira/browse/PROTON-752 > Project: Qpid Proton > Issue Type: Bug > Components: ruby-binding > Affects Versions: 0.8 > Reporter: Dominic Evans > Assignee: Darryl L. Pierce > Priority: Minor > > Currently the I/O-style calls to the Cproton methods don't unlock the Ruby > GIL, impacting performance as other Threads could be given time on the > interpreter whilst the extension code is running. > Depending on Ruby version this is simply a matter of wrapping the calls in > rb_thread_call_without_gvl (Ruby 2.x +) or rb_thread_blocking_region (Ruby > 1.9.x). On Ruby 1.8 I'm not sure if you can enable this, but its my > understanding that RHEL requires continued support for 1.8, so some #define > work would be needed to perform a no-op on that version. -- This message was sent by Atlassian JIRA (v6.3.4#6332)