| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
For example, on Windows, it was not possible to get ProactorEventLoop or
DefaultEventLoopPolicy using "from asyncio import *".
|
|
|
|
|
| |
Add a basic synchronization mechanism to wait until the child process is ready
before sending it a signal.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
ConnectionResetError
|
|
|
|
| |
ConnectionResetError too
|
|
|
|
|
|
|
|
| |
If you want to handle the BrokenPipeError, you can easily reimplement
communicate().
Add also a unit test to ensure that stdin.write() + stdin.drain() raises
BrokenPipeError.
|
|
|
|
| |
attribute. Based on patch by Martin Panter.
|
| |
|
| |
|
| |
|
|
|
|
| |
in gather().
|
|
|
|
| |
The _SelectorSslTransport constructor already calls it.
|
| |
|
|
|
|
| |
Fix regression that this test would have caught.
|
|
|
|
| |
in debug mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Tulip issue #184: Log subprocess events in debug mode
- Log stdin, stdout and stderr transports and protocols
- Log process identifier (pid)
- Log connection of pipes
- Log process exit
- Log Process.communicate() tasks: feed stdin, read stdout and stderr
- Add __repr__() method to many classes related to subprocesses
* Add BaseSubprocessTransport._pid attribute. Store the pid so it is still
accessible after the process exited. It's more convinient for debug.
* create_connection(): add the socket in the "connected to" debug log
* Clean up some docstrings and comments. Remove unused unimplemented
_read_from_self().
|
|
|
|
|
| |
test purposes are now reflected in GrepDialog and ReplaceDialog. Docstrings
are improved. Initial patch by Saimadhav Heblikar
|
|\
| |
| |
| | |
broken by the fix for security issue #19435. Patch by Zach Byrne.
|
| |\
| | |
| | |
| | | |
broken by the fix for security issue #19435. Patch by Zach Byrne.
|
| | |
| | |
| | |
| | | |
broken by the fix for security issue #19435. Patch by Zach Byrne.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Tulip issue #183: log socket events in debug mode
- Log most important socket events: socket connected, new client, connection
reset or closed by peer (EOF), etc.
- Log time elapsed in DNS resolution (getaddrinfo)
- Log pause/resume reading
- Log time of SSL handshake
- Log SSL handshake errors
- Add a __repr__() method to many classes
* Fix ProactorEventLoop() in debug mode. 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.
* Cleanup _ProactorReadPipeTransport constructor. Not need to set again
_read_fut attribute to None, it is already done in the base class.
|
| | |
| | |
| | |
| | |
| | |
| | | |
- Fix the documentation of Server.close(): it closes sockets
- Replace AbstractServer with Server
- Document Server.sockets attribute
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- loop, waiters and active_count attributes are now private
- attach(), detach() and wakeup() methods are now private
The sockets attribute remains public.
|
| | |
| | |
| | |
| | | |
Patch by Zachary Ware.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Tulip issue #182: Improve logs of BaseEventLoop._run_once()
- Don't log non-blocking poll
- Only log polling with a timeout if it gets events or if it timed out after
more than 1 second.
* Fix some pyflakes warnings: remove unused imports
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- CoroWrapper.__del__() now reuses repr(CoroWrapper) to log the "... was never
yielded from" warning
- Improve CoroWrapper: copy also the qualified name on Python 3.4, not only on
Python 3.5+
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- repr(Task) and repr(CoroWrapper) now also includes where these objects were
created. If the coroutine is not a generator (don't use "yield from"), use
the location of the function, not the location of the coro() wrapper.
- Fix create_task(): truncate the traceback to hide the call to create_task().
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Issues #21936, #21163: Fix sporadic failures of
test_future_exception_never_retrieved()
- Handle.cancel() now clears references to callback and args
- In debug mode, repr(Handle) now contains the location where the Handle was
created.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
until protocol.connection_made() has been called. Document also why transport
constructors use a waiter.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Tulip issue 185: Add a create_task() method to event loops. The create_task()
method can be overriden in custom event loop to implement their own task
class. For example, greenio and Pulsar projects use their own task class. The
create_task() method is now preferred over creating directly task using the
Task class.
- tests: fix a warning
- fix typo in the name of a test function
- Update AbstractEventLoop: add new event loop methods; update also the unit test
|
| | |
| | |
| | |
| | | |
the number of received bytes is negative.
|
| | | |
|
| | |
| | |
| | |
| | | |
get a bytes string
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Backout the "Tulip issue 181: Faster create_connection()" changeset, it was a
mistake.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Tulip issue #181: Faster create_connection(). Call directly
waiter.set_result() in the constructor of _ProactorBasePipeTransport and
_SelectorSocketTransport, instead of using of delaying the call with
call_soon().
- Cleanup iscoroutine()
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | | |
ModuleFinder.replace_paths_in_code().
|
|/ / /
| | |
| | |
| | | |
test_tcl.
|
| | | |
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | | |
Patch by July Tikhonov.
|
| | | |
| | | |
| | | |
| | | | |
Path.with_name(). Original patch by Antony Lee.
|