Closed ethan-vanderheijden closed 2 months ago
It looks like Eventlet support is only possible on Linux with Inotify.
BSD uses Kqueue, which Evenlet doesn't support. In fact, Evenlet deletes kqueue
from the select module entirely (see).
The problem with Windows is that the call to ReadDirectoryChangesW
is blocking, and since that call is made through the C API, it can't be monkey patched by Eventlet. I think it's possible to call ReadDirectoryChangesW
asynchronously and set up a callback function, but frankly, I'm not very familiar with Windows API.
That's awesome, thank you @ethan-vanderheijden !
I'll merge and deal myself with typing issues ;)
Fixes #1045 Fixes #679
New Eventlet release means it's time to fix these bugs! Actually, it turns out we don't need the latest Eventlet version to get this working, so I could have put this PR out months ago...
I made a couple minor improvements:
SkipRepeatsQueue
is now compatible with both the standard Python Queue and Eventlet's monkey patched versionpytest
are run inside the same Python interpreter, so if you do something that modifies global state, like callingeventlet.monkey_patch()
, you run the risk of interfering with other tests. To be safe, I moved tests with Eventlet monkey patching intotests/isolated/
and ran them in a separate Python interpreter withPopen
.Let me know if there's anything else that I need to do