Description
Describe the bug
Not sure if this is a bug yet, as much as a sanity check/question. I recently started using the ThreadPoolExecutor
context from concurrent.futures
to parallelize network requests.
I've had tests running using pyfakefs
for about a month or so now. As soon as I added the thread pool, some tests started taking a significant amount of time. I'm talking about from going from milliseconds to 30 seconds.
I thought it was a deadlock at first but the tests always eventually resolve. There is also no such slow down outside of the testing environment. Although I haven't ruled everything out, if I disable pyfakefs
, the issue disappears.
I assume this is caused for much the same reasons why subprocess
and multiprocessing
have known compatibility issues. I mean we are talking threads and not processes, but they probably make similar low-level calls.
So here's my question: is concurrent.futures
another library with known compatibility issues? Should it be added to the documentation I linked to above? Does the same go for the older ThreadPool library?
And is there a general recommendation for working around this kind of issue? I don't really want to disable the thread pool just for the tests and I also need pyfakefs
to mock the file system.
Let me know if you would like more context or details. All of this is in an open conda project so I can grab some GitHub Action logs if that would be useful. Thanks!