Yes - `multiprocessing` forks the python interpreter. As long as you use the synchronous API, no Python is invoked inside the client background pools - just the C++ handler. That means the GIL isn't touched, which means the deadlocks go away. I'm very happy with my Python scripts that use `multiprocessing` + `sync` APIs. That's definitely the direction for @dabercro. Yeah - CMS still uses the async API and we still have odds-n-ends issues with locks on the error recovery paths. It's incredibly tricky and I wouldn't advice folks to go down that path if they weren't already there. I do think it'd improve if the error callbacks were done on the background thread pool. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/xrootd/xrootd/issues/462#issuecomment-282374535 ######################################################################## 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