rpm-software-management / librepo

A library providing C and Python (libcURL like) API for downloading packages and linux repository metadata in rpm-md format
http://rpm-software-management.github.io/librepo/
GNU Lesser General Public License v2.1
75 stars 91 forks source link

Fix calling Python API without holding GIL (RhBug:1788918) #179

Closed lukash closed 4 years ago

lukash commented 4 years ago

Librepo releases GIL for the download operations, but it wasn't taking it again early enough in some callbacks where Python API is being called.

This commit moves taking the GIL in the callbacks to before any Python API is called.

https://bugzilla.redhat.com/show_bug.cgi?id=1788918