Jason Madden

Results 257 comments of Jason Madden

Nothing in `gevent.queue` is considered to be multiple-thread safe. (In general, _nothing_ in `gevent` is considered to be thread safe unless explicitly documented.) It would take a full code audit...

You want `--test-path=src` as well as `--path=src`. But by itself that won't work, you can't test persistent without it being built first. You can run `python setup.py bdist_ext -i` and...

I can't see any changes in gevent that could cause something like that. libev was untouched, the hub and all switching code was untouched, etc. I'd need to see a...

The only thing I can think of is that some things, specifically all the `queue` classes, are now cooperative when monkey-patched, and `gevent.queue.SimpleQueue` is now cooperative even when not monkey-patched....

The Flask/reload example from @ddorian is definitely a race condition. The main thread is in a loop looking for changed files; when it finds one, it closes the listening socket...

Note that none of the code being discussed is gevent; it's the stdlib `socketserver` and `werkzeug`. We thus have limited control. Also note that `socketserver` is implemented using (specifically) `selectors.PollSelector`,...

> I've raised this issue with CPython in re selector closure I completely agree that's a valid issue and the behaviour should be more standard. The difference is that here...

It turns out that libuv actually makes that extra system call (usually 2!) every time it creates an IO watcher; that's what lets it raise an exception ultimately. The implementation...

FWIW, the particular crash that @champax experienced only happens when libev is built with debugging assertions enabled. We don't distribute builds like that, so the installation of gevent had to...