Note the AsyncResponseHandler
suffers from the same issue when used like this:
f = client.File()
handler = AsyncResponseHandler()
status = f.open(smallfile, OpenFlags.READ, callback=handler)
status, response, hostlist = handler.wait()
This is because the callback is defined as:
def __call__(self, status, response, hostlist):
self.status = status
self.response = response
self.hostlist = hostlist
self.mutex.release()
The file above may be closed in the main process any time after mutex.release()
is called; however, the callback will still need to hold the GIL to exit the function. It would be quite hard to trigger in this case, however.
—
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