<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/trollius.git/tests/test_proactor_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>Enhance BaseProactorEventLoop._loop_self_reading()</title>
<updated>2015-01-16T16:45:51+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-16T16:45:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=59f9d6021eeb4817181c8aa9f6a9b795c6f5660d'/>
<id>59f9d6021eeb4817181c8aa9f6a9b795c6f5660d</id>
<content type='text'>
* Handle correctly CancelledError: just exit
* On error, log the exception and exit

Don't try to close the event loop, it is probably running and so it cannot be
closed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Handle correctly CancelledError: just exit
* On error, log the exception and exit

Don't try to close the event loop, it is probably running and so it cannot be
closed.
</pre>
</div>
</content>
</entry>
<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: Close explicitly event loops in tests</title>
<updated>2015-01-15T12:10:31+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-15T12:10:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=419ebd1308cd5086bc8bcb5199a4051b905ae9c0'/>
<id>419ebd1308cd5086bc8bcb5199a4051b905ae9c0</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 #22926: In debug mode, call_soon(), call_at() and call_later()</title>
<updated>2014-12-26T20:00:05+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-12-26T20:00:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=c6aea870ec617cc4591bd056d212557f3dfd257f'/>
<id>c6aea870ec617cc4591bd056d212557f3dfd257f</id>
<content type='text'>
methods of BaseEventLoop now use the identifier of the current thread to ensure
that they are called from the thread running the event loop.

Before, the get_event_loop() method was used to check the thread, and no
exception was raised when the thread had no event loop. Now the methods always
raise an exception in debug mode when called from the wrong thread. It should
help to notice misusage of the API.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
methods of BaseEventLoop now use the identifier of the current thread to ensure
that they are called from the thread running the event loop.

Before, the get_event_loop() method was used to check the thread, and no
exception was raised when the thread had no event loop. Now the methods always
raise an exception in debug mode when called from the wrong thread. It should
help to notice misusage of the API.
</pre>
</div>
</content>
</entry>
<entry>
<title>Tulip issue #202: Add unit test of pause/resume writing for proactor socket</title>
<updated>2014-12-11T21:19:47+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-12-11T21:19:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=44dd7adc4ad9e949cce8896867f280f4749c4959'/>
<id>44dd7adc4ad9e949cce8896867f280f4749c4959</id>
<content type='text'>
transport
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
transport
</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>Fix ProactorEventLoop() in debug mode</title>
<updated>2014-07-12T01:07:14+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-07-12T01:07:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=6439bf44316c2213996c023e3468ab8ac0c1206c'/>
<id>6439bf44316c2213996c023e3468ab8ac0c1206c</id>
<content type='text'>
ProactorEventLoop._make_self_pipe() doesn't call call_soon() directly because
it checks for the current loop which fails, because the method is called to
build the event loop.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ProactorEventLoop._make_self_pipe() doesn't call call_soon() directly because
it checks for the current loop which fails, because the method is called to
build the event loop.
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor tests: add a base TestCase class</title>
<updated>2014-06-17T23:32:10+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-06-17T23:32:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=830f91fafb1f2b2ea4be28be6fd8bac9bed53dd4'/>
<id>830f91fafb1f2b2ea4be28be6fd8bac9bed53dd4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace "unittest.mock" with "mock" in unit tests</title>
<updated>2014-02-26T09:22:59+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-02-26T09:22:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=b23f5dabab1f7a5e241d348bca8d0aabf2c77a29'/>
<id>b23f5dabab1f7a5e241d348bca8d0aabf2c77a29</id>
<content type='text'>
Use "from unittest import mock". It should simplify my work to merge new tests
in Trollius, because Trollius uses "mock" backport for Python 2.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use "from unittest import mock". It should simplify my work to merge new tests
in Trollius, because Trollius uses "mock" backport for Python 2.
</pre>
</div>
</content>
</entry>
<entry>
<title>Issue #139: Improve error messages on "fatal errors"</title>
<updated>2014-02-19T00:39:27+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-02-19T00:39:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=fc10b4db75655bf8685289cd3161ea359079cae6'/>
<id>fc10b4db75655bf8685289cd3161ea359079cae6</id>
<content type='text'>
Mention if the error was caused by a read or a write, and be more specific on
the object (ex: "pipe transport" instead of "transport").
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mention if the error was caused by a read or a write, and be more specific on
the object (ex: "pipe transport" instead of "transport").
</pre>
</div>
</content>
</entry>
</feed>
