| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you have a pool with no free items, one greenthread blocked in
pool.get(), and then you call pool.put(item), sometimes the put will
block.
This happens when the greenthread blocked in pool.get() has a pending
timeout. The timeout's timer has fired, the call to throw() has been
scheduled, but throw() has not actually run yet. In pool.put(), we see
a waiting getter, so we do a blocking self.channel.put()... but when
the getter runs, it unwinds its stack and does not take the item,
leaving the caller of pool.put() blocked despite there being enough
free space.
This commit fixes that by (a) making LightQueue.put() and .get() work
with 0-length queues, even with timeouts, and (b) checking for
queue.Full in Pool.put() and handling it correctly.
https://github.com/eventlet/eventlet/pull/495
|
| |
|
|
| |
https://github.com/eventlet/eventlet/issues/407
|
| | |
|
| | |
|
| |
|
|
| |
https://github.com/eventlet/eventlet/issues/101
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- __next__ for iterator interface
- six.next() to get next item
- list(dict.keys())
- popen2.popen4 -> subprocess
- s2b -> b"..." literals
- deprecated assertEquals -> assertEqual
- hub_test test_fork using run_python
- 1L -> 1 long literal
- many PEP-8 fixes
|
| |
|
|
| |
https://github.com/eventlet/eventlet/pull/59
|
| |
|
|
| |
This fixes GitHub issue #54
|
| |
|
|
|
|
|
| |
First step to Python 3 compatibility
"2to3 -w -f except ." See [1]
[1] http://docs.python.org/2/library/2to3.html#fixers
|
| |
|
|
| |
queued putters
|
| | |
|
| |
|
|
| |
TimeoutError with Timeout (should be seamless).
|
| | |
|
| |
|
|
| |
coros.queue with queue.Queue in pools.py.
|
| |
|
|
| |
actually stdlib-compatible.
|
| | |
|
| | |
|
| |
|