When synchronous operations are performed, the python GIL should be
dropped using the async
macro. Otherwise, the following deadlock
can occur:
a) A python thread, holding the GIL, may call out to a XrdCl::File
object, which takes an XRootD-related lock.
b) A XrdCl callback thread, holding an XRootD-related lock, tries
to invoke a python callback and tries to acquire the GIL.
Since the python GIL is not needed to invoke an XrdCl operation,
this patch drops it for case (a), avoiding the deadlock.
https://github.com/xrootd/xrootd/pull/329
—
Reply to this email directly or view it on GitHub.
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1