Print

Print


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:
https://github.com/xrootd/xrootd-python/issues/13#issuecomment-170359850

########################################################################
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