Alan Conway created PROTON-1063: ----------------------------------- Summary: ruby: ruby reactor holds GVL in process Key: PROTON-1063 URL: https://issues.apache.org/jira/browse/PROTON-1063 Project: Qpid Proton Issue Type: Bug Components: ruby-binding Affects Versions: 0.10 Reporter: Alan Conway Assignee: Alan Conway Fix For: 0.12.0
Ruby has a global lock the GVL, like python's GIL. The ruby binding Reactor#process blocks in pn_reactor_process while holding the lock, blocking all other ruby threads. This is the same issue as PROTON-752, but it was only fixed for messenger, not for the reactor. The fix is more complex, we can't simply call pn_reactor_process in rb_thread_call_without_gvl() because it calls handler functions that call back into ruby. We need to isolate just the blocking IO code in without_gvl and restore the lock before handlers call back into ruby. -- This message was sent by Atlassian JIRA (v6.3.4#6332)