<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/trollius.git/tests/test_unix_events.py, branch remove-joinable-queue</title>
<subtitle>bitbucket.org: Obsolete (use python-packages/trollius-git)
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/'/>
<entry>
<title>Python issue #23243: Close explicitly transports in tests</title>
<updated>2015-01-15T12:08:17+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-15T12:08:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=f20d9b867e1bf0da4d9b453c6eb3d5c5135069ab'/>
<id>f20d9b867e1bf0da4d9b453c6eb3d5c5135069ab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Python issue #23243: Fix _UnixWritePipeTransport.close()</title>
<updated>2015-01-15T11:54:49+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-15T11:54:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=1acecaf9ed3ad034135ba55ee886f77cdc741f88'/>
<id>1acecaf9ed3ad034135ba55ee886f77cdc741f88</id>
<content type='text'>
Do nothing if the transport is already closed. Before it was not possible to
close the transport twice.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Do nothing if the transport is already closed. Before it was not possible to
close the transport twice.
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: explicitly close event loops and transports</title>
<updated>2015-01-14T21:58:14+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-14T21:58:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=3d5d99c4a3bbcedb1e338cdc3daa33aa0d09a122'/>
<id>3d5d99c4a3bbcedb1e338cdc3daa33aa0d09a122</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix pyflakes warnings: remove unused imports and variables</title>
<updated>2014-12-19T21:20:44+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-12-19T21:20:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=7020608553aa29f0a6075482d6b99c0c7f26d9d3'/>
<id>7020608553aa29f0a6075482d6b99c0c7f26d9d3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Coroutine objects are now rejected with a TypeError by the following functions:</title>
<updated>2014-11-20T14:03:16+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-11-20T14:03:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=a88f2bc4659174b40cde546c545792733400bcf5'/>
<id>a88f2bc4659174b40cde546c545792733400bcf5</id>
<content type='text'>
* add_signal_handler()
* call_at()
* call_later()
* call_soon()
* call_soon_threadsafe()
* run_in_executor()

Fix also the error message of add_signal_handler() (fix the name of the
function).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* add_signal_handler()
* call_at()
* call_later()
* call_soon()
* call_soon_threadsafe()
* run_in_executor()

Fix also the error message of add_signal_handler() (fix the name of the
function).
</pre>
</div>
</content>
</entry>
<entry>
<title>- Issue #22841: Reject coroutines in asyncio add_signal_handler().</title>
<updated>2014-11-14T19:41:13+00:00</updated>
<author>
<name>Guido van Rossum</name>
<email>guido@python.org</email>
</author>
<published>2014-11-14T19:41:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=6f7273a5a37f040dc54dc19eee4bdcaaa852900b'/>
<id>6f7273a5a37f040dc54dc19eee4bdcaaa852900b</id>
<content type='text'>
  Patch by Ludovic.Gasc.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  Patch by Ludovic.Gasc.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use the new os.set_blocking() function of Python 3.5 if available</title>
<updated>2014-07-29T20:45:43+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-07-29T20:45:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=fb9baae7d3fa933d6748c96e768edb47e27aade7'/>
<id>fb9baae7d3fa933d6748c96e768edb47e27aade7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Tulip issue #194: Don't use sys.getrefcount() in unit tests</title>
<updated>2014-07-23T16:16:37+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-07-23T16:16:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=51960fdb2814311de205e0de7bde33bbe4598315'/>
<id>51960fdb2814311de205e0de7bde33bbe4598315</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Tulip issue 192, Python issue 21645: Rewrite signal handling</title>
<updated>2014-07-17T20:18:31+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-07-17T20:18:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=074ed08f16545d46bdef1acb4df5dd53b537cf63'/>
<id>074ed08f16545d46bdef1acb4df5dd53b537cf63</id>
<content type='text'>
Since Python 3.3, the C signal handler writes the signal number into the wakeup
file descriptor and then schedules the Python call using Py_AddPendingCall().

asyncio uses the wakeup file descriptor to wake up the event loop, and relies
on Py_AddPendingCall() to schedule the final callback with call_soon().

If the C signal handler is called in a thread different than the thread of the
event loop, the loop is awaken but Py_AddPendingCall() was not called yet. In
this case, the event loop has nothing to do and go to sleep again.
Py_AddPendingCall() is called while the event loop is sleeping again and so the
final callback is not scheduled immediatly.

This patch changes how asyncio handles signals. Instead of relying on
Py_AddPendingCall() and the wakeup file descriptor, asyncio now only relies on
the wakeup file descriptor. asyncio reads signal numbers from the wakeup file
descriptor to call its signal handler.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since Python 3.3, the C signal handler writes the signal number into the wakeup
file descriptor and then schedules the Python call using Py_AddPendingCall().

asyncio uses the wakeup file descriptor to wake up the event loop, and relies
on Py_AddPendingCall() to schedule the final callback with call_soon().

If the C signal handler is called in a thread different than the thread of the
event loop, the loop is awaken but Py_AddPendingCall() was not called yet. In
this case, the event loop has nothing to do and go to sleep again.
Py_AddPendingCall() is called while the event loop is sleeping again and so the
final callback is not scheduled immediatly.

This patch changes how asyncio handles signals. Instead of relying on
Py_AddPendingCall() and the wakeup file descriptor, asyncio now only relies on
the wakeup file descriptor. asyncio reads signal numbers from the wakeup file
descriptor to call its signal handler.
</pre>
</div>
</content>
</entry>
<entry>
<title>Enable the debug mode of event loops when the PYTHONASYNCIODEBUG environment</title>
<updated>2014-06-22T22:11:39+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-06-22T22:11:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=aa4e4ad913a57f609d90d567c1b004da45374804'/>
<id>aa4e4ad913a57f609d90d567c1b004da45374804</id>
<content type='text'>
variable is set
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
variable is set
</pre>
</div>
</content>
</entry>
</feed>
