<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/eventlet.git/tests/queue_test.py, branch codecov</title>
<subtitle>github.com: eventlet/eventlet.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/'/>
<entry>
<title>pools: put to empty pool would block sometimes</title>
<updated>2018-07-03T05:59:35+00:00</updated>
<author>
<name>Sam Merritt</name>
<email>spam@andcheese.org</email>
</author>
<published>2018-07-03T05:59:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=acd8b65a06e90dbeb1ea416d1cd5922a0727ebd2'/>
<id>acd8b65a06e90dbeb1ea416d1cd5922a0727ebd2</id>
<content type='text'>
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</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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</pre>
</div>
</content>
</entry>
<entry>
<title>queue: empty except was catching too much</title>
<updated>2017-04-25T22:20:37+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2017-04-25T22:20:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=0daf3e9da421088e15fb4540302af55a84b8eaf1'/>
<id>0daf3e9da421088e15fb4540302af55a84b8eaf1</id>
<content type='text'>
https://github.com/eventlet/eventlet/issues/407
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/eventlet/eventlet/issues/407
</pre>
</div>
</content>
</entry>
<entry>
<title>Reformat with autopep8</title>
<updated>2014-10-11T00:41:30+00:00</updated>
<author>
<name>Jakub Stasiak</name>
<email>jakub@stasiak.at</email>
</author>
<published>2014-10-10T08:41:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=93f2a8d06829d1b6e3cc648d3ee6ad0ee9e51a05'/>
<id>93f2a8d06829d1b6e3cc648d3ee6ad0ee9e51a05</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>PEP-8 fixes</title>
<updated>2014-08-27T06:21:55+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2014-07-18T11:21:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=203e629212be5cf6e53d577734421d494b255754'/>
<id>203e629212be5cf6e53d577734421d494b255754</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: deprecated TestCase.assert_() -&gt; assert keyword</title>
<updated>2014-07-16T11:15:50+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2014-07-16T09:54:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=a651a3097f7ba957ad29342dac011d5a9218e76b'/>
<id>a651a3097f7ba957ad29342dac011d5a9218e76b</id>
<content type='text'>
https://github.com/eventlet/eventlet/issues/101
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/eventlet/eventlet/issues/101
</pre>
</div>
</content>
</entry>
<entry>
<title>python3 compatibility</title>
<updated>2014-04-24T14:11:37+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2014-04-24T13:51:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=cbd404d56e231ea5419f07795a12d7082dd70ec4'/>
<id>cbd404d56e231ea5419f07795a12d7082dd70ec4</id>
<content type='text'>
- __next__ for iterator interface
- six.next() to get next item
- list(dict.keys())
- popen2.popen4 -&gt; subprocess
- s2b -&gt; b"..." literals
- deprecated assertEquals -&gt; assertEqual
- hub_test test_fork using run_python
- 1L -&gt; 1 long literal
- many PEP-8 fixes
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- __next__ for iterator interface
- six.next() to get next item
- list(dict.keys())
- popen2.popen4 -&gt; subprocess
- s2b -&gt; b"..." literals
- deprecated assertEquals -&gt; assertEqual
- hub_test test_fork using run_python
- 1L -&gt; 1 long literal
- many PEP-8 fixes
</pre>
</div>
</content>
</entry>
<entry>
<title>python3 compat fixes</title>
<updated>2014-03-28T06:58:14+00:00</updated>
<author>
<name>Victor Sergeyev</name>
<email>vsergeyev@mirantis.com</email>
</author>
<published>2013-11-25T16:21:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=2b2f0a96b44779c5b98c851c55d70ec5e46e41f9'/>
<id>2b2f0a96b44779c5b98c851c55d70ec5e46e41f9</id>
<content type='text'>
https://github.com/eventlet/eventlet/pull/59
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/eventlet/eventlet/pull/59
</pre>
</div>
</content>
</entry>
<entry>
<title>queue: Make join not wait if there are no unfinished tasks</title>
<updated>2014-03-27T04:47:37+00:00</updated>
<author>
<name>Jakub Stasiak</name>
<email>jakub@stasiak.at</email>
</author>
<published>2014-01-28T21:00:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=76a8cdcdaecb25cad58b015887e94a1393f6a425'/>
<id>76a8cdcdaecb25cad58b015887e94a1393f6a425</id>
<content type='text'>
This fixes GitHub issue #54
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes GitHub issue #54
</pre>
</div>
</content>
</entry>
<entry>
<title>python3 compat: 2to3: `except E as e:` syntax</title>
<updated>2013-12-03T18:31:55+00:00</updated>
<author>
<name>Davanum Srinivas</name>
<email>dims@linux.vnet.ibm.com</email>
</author>
<published>2013-09-23T02:56:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=80633ab22486228a64184bb9d8d6fd0ea7977677'/>
<id>80633ab22486228a64184bb9d8d6fd0ea7977677</id>
<content type='text'>
First step to Python 3 compatibility
"2to3 -w -f except ." See [1]

[1] http://docs.python.org/2/library/2to3.html#fixers
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
First step to Python 3 compatibility
"2to3 -w -f except ." See [1]

[1] http://docs.python.org/2/library/2to3.html#fixers
</pre>
</div>
</content>
</entry>
<entry>
<title>py3k - None is not comparable in 3.x, also queue.resize(None) was not waking queued putters</title>
<updated>2010-03-07T09:20:35+00:00</updated>
<author>
<name>amajorek</name>
<email>devnull@localhost</email>
</author>
<published>2010-03-07T09:20:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=01c37d5cb2c46a631c67036900e7028c35e6e389'/>
<id>01c37d5cb2c46a631c67036900e7028c35e6e389</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
