Commit Graph

201 Commits

Author SHA1 Message Date
Guido van Rossum 48c66c3dd8 asyncio: wait_for() now accepts None as timeout (Victor Stinner). 2014-01-29 14:30:38 -08:00
Guido van Rossum 1e9a446ebe asyncio: Pass through pause/resume from subprocess pipe proto to subprocess proto. Also kill dummy eof_received(). 2014-01-29 14:28:15 -08:00
Guido van Rossum 4d62d0b353 asyncio: Refactor drain logic in streams.py to be reusable. 2014-01-29 14:24:45 -08:00
Victor Stinner aaabc4fdca asyncio: Get rid of _try_connected(). 2014-01-29 14:22:56 -08:00
Guido van Rossum 47fb97e4e6 asyncio: Add write flow control to unix pipes. 2014-01-29 13:20:39 -08:00
Guido van Rossum 3ccead1f6a asyncio: Refactoring: move write flow control to a subclass/mixin. 2014-01-29 13:15:59 -08:00
Victor Stinner 63b4d4b494 asyncio: _fatal_error() of _UnixWritePipeTransport and _ProactorBasePipeTransport shouldn't log BrokenPipeError nor ConnectionResetError.
(Same behaviour as _SelectorTransport._fatal_error().)
2014-01-29 13:12:03 -08:00
Victor Stinner 7aedea40d6 asyncio: remove temporary aliases 2014-01-28 00:09:24 +01:00
Andrew Svetlov 0742cae335 Merge latest Tulip into asyncio 2014-01-26 18:36:01 +02:00
Guido van Rossum fef7098ef9 asyncio: Rename {Empty,Full} to {QueueEmpty,QueueFull} and no longer get them from queue.py. 2014-01-25 17:24:51 -08:00
Guido van Rossum ab3c88983b asyncio: Locks refactor: use a separate context manager; remove Semaphore._locked. 2014-01-25 16:51:57 -08:00
Guido van Rossum ab27a9fc4b asyncio: Fix race in FastChildWatcher (by its original author, Anthony Baire). 2014-01-25 16:32:17 -08:00
Victor Stinner 669eeaf933 Merge latest Tulip into asyncio
- Make the new granularity attribute private
- Simplify BaseEventLoop._run_once(): avoid math.ceil(), use simple arithmetic
  instead
2014-01-26 00:02:31 +01:00
Victor Stinner 128ee220e2 asyncio: Don't export BaseEventLoop, BaseSelectorEventLoop nor
BaseProactorEventLoop

Import them from submodules if you really need them.
2014-01-25 22:22:18 +01:00
Victor Stinner 8dffc456d7 Update asyncio from the Tulip project
Major changes:

- StreamReader.readexactly() now raises an IncompleteReadError if the
  end of stream is reached before we received enough bytes, instead of
  returning less bytes than requested.

- Unit tests use the main asyncio module instead of submodules like events

- _UnixWritePipeTransport now also supports character devices, as
  _UnixReadPipeTransport. Patch written by Jonathan Slenders.

- Export more symbols: BaseEventLoop, BaseProactorEventLoop,
  BaseSelectorEventLoop, Queue and Queue sublasses, Empty, Full
2014-01-25 15:32:06 +01:00
Victor Stinner 75a5ec88ff Fix asyncio tests: define resolution 2014-01-25 15:31:06 +01:00
Victor Stinner f67255ab94 Issue #20311: asyncio: Add a granularity attribute to BaseEventLoop: maximum
between the resolution of the BaseEventLoop.time() method and the resolution of
the selector. The granuarility is used in the scheduler to round time and
deadline.
2014-01-25 15:01:33 +01:00
Victor Stinner 421e49b5c1 asyncio: wait_for() now cancels the future on timeout. Patch written by Gustavo
Carneiro.
2014-01-23 17:40:59 +01:00
Victor Stinner 183e347796 asyncio (Tulip issue 110): StreamReader.read() and StreamReader.readline() now
raise a RuntimeError, instead of using an assertion, if another coroutine is
already waiting for incoming data
2014-01-23 17:40:03 +01:00
Victor Stinner 3eb45d3eae asyncio: Fix open_connection() documentation, writer is a StreamWriter 2014-01-23 10:20:18 +01:00
Victor Stinner 4a2dbeb0d3 asyncio: Cleanup logging in BaseEventLoop._run_once()
logger.log() is now responsible to format the timeout. It might be faster if
the log is disabled for DEBUG level, but it's also more readable and fix
an issue with Python 2.6 in the Trollius project.
2014-01-22 12:26:01 +01:00
Victor Stinner 22463aa947 Close #20275: Optimize BaseEventLoop._run_once()
Logger.log() is "slow", logger.isEnabledFor() is faster and the logger is
disabled in most cases. A microbenchmark executing 100,000 dummy tasks is 22%
faster with this change.
2014-01-20 23:56:40 +01:00
Guido van Rossum e1f554490d asyncio: Reincarnate CoroWrapper's docstring as a comment. 2014-01-16 11:05:23 -08:00
Victor Stinner bac7793b5b asyncio: Fix CoroWrapper (fix my previous commit)
Add __name__ and __doc__ to __slots__
2014-01-16 01:55:29 +01:00
Victor Stinner 4d7a29c5de asyncio: Fix a typo in CoroWrapper
__slot__ => __slots__
2014-01-16 01:38:24 +01:00
Victor Stinner 7de2646cdf Cleanup properly proactor event loop
* store the "self reading" future when the "self pipe" is closed (when the
  event loop is closed)
* store "accept" futures to cancel them when we stop serving
* close the "accept socket" if the "accept future" is cancelled

Fix many warnings which can be seen when unit tests are run in verbose mode.
2014-01-11 00:03:21 +01:00
Guido van Rossum 02757ea7e9 asyncio: Minimal pty support in UNIX read pipe, by Jonathan Slenders. 2014-01-10 13:30:04 -08:00
Guido van Rossum 4835f17c24 asyncio: Fix race in subprocess transport, by Victor Stinner. 2014-01-10 13:28:59 -08:00
Guido van Rossum efef9d3f25 asyncio: Tiny cleanup in streams.py. 2014-01-10 13:26:38 -08:00
Guido van Rossum 2407f3bb1b asyncio: Don't special-case GeneratorExit in Condition.wait(). 2014-01-10 13:25:38 -08:00
Guido van Rossum 6188bd498f Fix typo in asyncio/streams.py. 2014-01-07 17:03:26 -08:00
Guido van Rossum 3845521b4b asyncio: Fix deadlock in readexactly(). Fixes issue #20154. 2014-01-06 16:09:18 -08:00
Victor Stinner 6f055e73df asyncio: make PY34 symbol private (rename it to _PY34) 2014-01-02 18:41:34 +01:00
Guido van Rossum 68816ef058 Export asyncio.iscoroutine[function]. 2013-12-28 08:06:40 -10:00
Guido van Rossum 68600c73bf asyncio: Fix space in log message about poll time. 2013-12-20 20:37:41 -08:00
Victor Stinner e40c078627 Issue #19967: Defer the formating of the traceback in asyncio.Future destructor 2013-12-21 00:19:33 +01:00
Guido van Rossum ac97bf4fd9 asyncio: Export all abstract protocol and transport classes. Fixes issue #20029. 2013-12-20 14:16:21 -08:00
Guido van Rossum 9ba75db3c5 asyncio: Clean up formatting. 2013-12-19 13:49:32 -08:00
Victor Stinner 4c3c699e62 Close #19967: Thanks to the PEP 442, asyncio.Future can use a destructor in
Python 3.4 to log "uncatched" exceptions, instead of the dedicated
_TracebackLogger class.
2013-12-19 22:42:40 +01:00
Guido van Rossum 994bf4332f Shorten lines. 2013-12-19 12:47:38 -08:00
Victor Stinner 2748bc735e asyncio: remove references to the Tulip project, rename Tulip to asyncio.
Patch written by Vajrasky Kok.
2013-12-13 10:57:04 +01:00
Victor Stinner 782b8e4b88 Remove a duplicated import 2013-12-07 15:02:09 +01:00
Guido van Rossum 1a605ed5a3 asyncio: Add Task.current_task() class method. 2013-12-06 12:57:40 -08:00
Christian Heimes c9a87e6bbe fix cert names for asyncio test 2013-12-06 02:58:23 +01:00
Christian Heimes 6d8c1abb00 Issue #19509: Finish implementation of check_hostname
The new asyncio package now supports the new feature and comes with additional tests for SSL.
2013-12-06 00:23:13 +01:00
Charles-François Natali 74e7cf3f46 Issue #19850: asyncio: Set SA_RESTART when registering a signal handler to
limit EINTR occurrences.
2013-12-05 22:47:19 +01:00
Guido van Rossum ebb8e58f0a asyncio: Write flow control for proactor event loop. 2013-12-04 12:12:07 -08:00
Victor Stinner cf6f72e329 Fix typo in asyncio.AbstractServer documentation 2013-12-03 18:23:52 +01:00
Guido van Rossum f10345e102 asyncio: Improve default writelines(). 2013-12-02 18:36:30 -08:00
Victor Stinner 10a8e6ab7b asyncio: replace our with asynchronous in docstring 2013-12-02 14:31:43 +01:00
Victor Stinner c37dd614b6 asyncio: document locks 2013-12-02 14:31:16 +01:00
Charles-François Natali b3330a0abf Issue #19842: Refactor BaseSelector to make it an actual usable ABC. 2013-12-01 11:04:17 +01:00
Guido van Rossum 9204af42cc asyncio: Use Interface instead of ABC. Fixes issue 19726. 2013-11-30 15:35:42 -08:00
Guido van Rossum de3a1363a9 asyncio: Add 'shield' to __all__. 2013-11-29 09:29:00 -08:00
Guido van Rossum a5062c5d81 asyncio: Change write buffer use to avoid O(N**2). Make write()/sendto() accept bytearray/memoryview too. Change some asserts with proper exceptions. 2013-11-27 14:12:48 -08:00
Guido van Rossum cced076218 asyncio: Fix get_event_loop() to call set_event_loop() when setting the loop. By Anthony Baire. 2013-11-27 10:37:13 -08:00
Guido van Rossum 49c96fb7fa asyncio: Add StreamReaderProtocol to __all__. 2013-11-25 15:07:18 -08:00
Guido van Rossum 16c42391f1 asyncio: Fix docstring of get_nowait(). 2013-11-24 22:41:35 -08:00
Guido van Rossum a58d1c32f8 asyncio: Add BoundedSemaphore to export list in locks.__all__. 2013-11-24 22:32:09 -08:00
Richard Oudkerk 71196e7f55 Issue #19740: Use WaitForSingleObject() instead of trusting TimerOrWaitFired. 2013-11-24 17:50:40 +00:00
Guido van Rossum 7fa6e1aeea Keep asyncio working with Python 3.3 too. 2013-11-23 15:36:43 -08:00
Guido van Rossum 085869bfee asyncio: Change bounded semaphore into a subclass, like threading.[Bounded]Semaphore. 2013-11-23 15:09:16 -08:00
Christian Heimes 67986f9431 Issue #19735: Implement private function ssl._create_stdlib_context() to
create SSLContext objects in Python's stdlib module. It provides a single
configuration point and makes use of SSLContext.load_default_certs().
2013-11-23 22:43:47 +01:00
Guido van Rossum 488b0da5da Fix typo. 2013-11-23 11:51:09 -08:00
Antoine Pitrou dec43382c1 Fix transport docstrings 2013-11-23 12:30:00 +01:00
Guido van Rossum 7a465647e4 asyncio: Pass cancellation from wrapping Future to wrapped Future. By Saúl Ibarra Corretgé (mostly). 2013-11-22 11:47:22 -08:00
Guido van Rossum 9c55a58a1d asyncio: Make Semaphore(0) work properly. 2013-11-21 11:07:45 -08:00
Guido van Rossum 1540b16ff4 asyncio: Add streams.start_server(), by Gustavo Carneiro. 2013-11-19 11:43:38 -08:00
Guido van Rossum 2335de7a20 asyncio: Replace connection_refused() with error_received(). 2013-11-15 16:51:48 -08:00
Guido van Rossum 2bcae708d8 asyncio: Fix from Anthony Baire for CPython issue 19566 (replaces earlier fix). 2013-11-13 15:50:08 -08:00
Guido van Rossum 82e9f32f17 asyncio: Temporary fix by Victor Stinner for issue 19566. 2013-11-13 11:08:34 -08:00
Guido van Rossum 0b69fbc642 asyncio: Add close() back to Unix selector event loop, to remove all signal handlers. Should fix buildbot issues. 2013-11-06 20:25:50 -08:00
Guido van Rossum 0eaa5ac9b5 asyncio: Refactor SIGCHLD handling. By Anthony Baire. 2013-11-04 15:50:46 -08:00
Guido van Rossum ccea08462b asyncio: Locks improvements by Arnaud Faure: better repr(), change Conditio\
n structure.
2013-11-04 13:18:19 -08:00
Guido van Rossum 28dff0d823 asyncio: Better-looking errors when ssl module cannot be imported. In part by Arnaud Faure. 2013-11-01 14:22:30 -07:00
Guido van Rossum a8d630a6e6 asyncio: Various style nits. 2013-11-01 14:20:55 -07:00
Guido van Rossum 3a703921a6 asyncio: Log a warning when eof_received() returns true and using ssl. 2013-11-01 14:19:35 -07:00
Guido van Rossum e3f52ef067 asyncio: Document EventLoop.close(). 2013-11-01 14:19:04 -07:00
Guido van Rossum 2b57016458 asyncio: Refactor ssl transport ready loop (Nikolay Kim). 2013-11-01 14:18:02 -07:00
Guido van Rossum 21c85a7124 asyncio: Add server_hostname as create_connection() argument, with secure default. 2013-11-01 14:16:54 -07:00
Guido van Rossum 2b430b8720 asyncio: Fold some long lines. 2013-11-01 14:13:30 -07:00
Guido van Rossum 3317a13253 asyncio: Pause accepting whenever accept() returns certain errors. Fixes asyncio issue #78. 2013-11-01 14:12:50 -07:00
Guido van Rossum 0016e1d8ba asyncio: Add new file (forgotten). 2013-10-30 14:56:49 -07:00
Guido van Rossum 5969128a86 asyncio: Add support for running subprocesses on Windows with the IOCP event loop (Richard Oudkerk). 2013-10-30 14:52:03 -07:00
Guido van Rossum 90fb914b4b asyncio: Make the IOCP proactor support "waitable" handles (Richard Oudkerk). 2013-10-30 14:44:05 -07:00
Guido van Rossum ec7922cb3e asyncio: Update some comments. 2013-10-30 14:38:05 -07:00
Guido van Rossum 1f683bbe71 asyncio: When not closing the connection after receiving EOF, still remove the read handler. 2013-10-30 14:36:58 -07:00
Guido van Rossum 934f6ea7fb Switch subprocess stdin to a socketpair, attempting to fix issue #19293 (AIX hang). 2013-10-21 20:37:14 -07:00
Guido van Rossum 8da15cc218 asyncio: be more lenient if we don't understand status returned by waitpid().
This should have no effect, it's a "shouldn't happe" case.
Also tidied up some comments.
2013-10-21 15:00:44 -07:00
Antoine Pitrou a7a150c7c6 Close #19297: fix resource warnings in test_asyncio. Patch by Vajrasky Kok. 2013-10-20 23:26:23 +02:00
Charles-François Natali 5121debebf Issue #19310: asyncio: fix child processes reaping logic. 2013-10-20 23:23:44 +02:00
Charles-François Natali bcd76827f4 Issue #19309: asyncio: make waitpid() wait for all child processes, not only
those in the same process group.
2013-10-20 20:31:43 +02:00
Guido van Rossum 32e46850a1 (Hopefully) proper fix for gentoo buildbot failure due to lacking AF_INET6 support.
This should supersede revision e3ec6b17260c (but please test before removing that).
2013-10-19 17:04:25 -07:00
Antoine Pitrou d20afad7d4 Issue #19305: try to fix sporadic test_asyncio failure on FreeBSD 10.0 2013-10-20 01:51:25 +02:00
Antoine Pitrou 4ca7355901 Issue #19299: fix refleak test failures in test_asyncio 2013-10-20 00:54:10 +02:00
Guido van Rossum f19a6ef2c9 Verify hostname if verify_mode is CERT_OPTIONAL too. 2013-10-19 09:52:09 -07:00
Guido van Rossum 355491dc47 Write flow control for asyncio (includes asyncio.streams overhaul). 2013-10-18 15:17:11 -07:00
Guido van Rossum 2546a17765 Important race condition fix for Tulip. 2013-10-18 10:10:36 -07:00
Guido van Rossum 57497ad181 Rename Transport.pause/resume to pause_reading/pause_writing. Also relax timeout in test_call_later(). 2013-10-18 07:58:20 -07:00
Guido van Rossum fc29e0f37e Rename the logger to plain "logger". 2013-10-17 15:39:45 -07:00
Guido van Rossum 27b7c7ebf1 Initial checkin of asyncio package (== Tulip, == PEP 3156). 2013-10-17 13:40:50 -07:00