Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-752

Ruby: Cproton calls don't unlock the GIL for blocking / long-running operations

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • proton-0.8
    • proton-0.9
    • ruby-binding
    • None

    Description

      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.

      Attachments

        Activity

          People

            mcpierce Darryl Pierce
            dnwe Dominic Evans
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: