Yury Selivanov
e694c9745f
asyncio.streams: Use bytebuffer in StreamReader; Add assertion in feed_data
2014-02-05 18:11:13 -05:00
Victor Stinner
83bdfa08f7
asyncio: Fix _ProactorWritePipeTransport._pipe_closed()
...
Do nothing if the pipe is already closed. _loop_writing() may call
_force_close() when it gets ConnectionResetError.
2014-02-04 08:57:48 +01:00
Victor Stinner
b79eb0502c
asyncio.subprocess: Replace Process.get_subprocess() method with a
...
Process.subprocess read-only property
2014-02-03 23:08:14 +01:00
Victor Stinner
915bcb0111
Issue #20400 : Merge Tulip into Python: add the new asyncio.subprocess module
...
* Add a new asyncio.subprocess module
* Add new create_subprocess_exec() and create_subprocess_shell() functions
* The new asyncio.subprocess.SubprocessStreamProtocol creates stream readers
for stdout and stderr and a stream writer for stdin.
* The new asyncio.subprocess.Process class offers an API close to the
subprocess.Popen class:
- pid, returncode, stdin, stdout and stderr attributes
- communicate(), wait(), send_signal(), terminate() and kill() methods
* Remove STDIN (0), STDOUT (1) and STDERR (2) constants from base_subprocess
and unix_events, to not be confused with the symbols with the same name of
subprocess and asyncio.subprocess modules
* _ProactorBasePipeTransport.get_write_buffer_size() now counts also the size
of the pending write
* _ProactorBaseWritePipeTransport._loop_writing() may now pause the protocol if
the write buffer size is greater than the high water mark (64 KB by default)
2014-02-01 22:49:59 +01:00
Victor Stinner
1506df2655
Issue #20455 : Add a resolution attribute to IocpProactor (1 ms)
2014-01-31 16:26:38 +01:00
Victor Stinner
f2e1768bc1
Issue #20455 : asyncio: use the same code to round a timeout than the selectors
...
module
Sort also imports
2014-01-31 16:25:24 +01:00
Victor Stinner
b60e9ca69d
Issue #20455 : asyncio: write a new write pipe transport class for proactor (on
...
Windows) instead of using the "duplex" pipe transport. The new class uses a
simpler overlapped read to be notified when the pipe is closed. So the protocol
doesn't need to implement eof_received(): connection_lost() is called instead.
_UnixWritePipeTransport has the same approach.
2014-01-31 14:18:18 +01:00
Victor Stinner
61b3c9bacc
asyncio: Fix _UnixWritePipeTransport, raise BrokenPipeError when the pipe is
...
closed, but only if there was pending write
2014-01-31 13:04:28 +01:00
Victor Stinner
49d0f4e428
Issue #20452 : Remove debug code, no more needed
2014-01-31 12:59:43 +01:00
Victor Stinner
323748e1d1
asyncio: Fix error message in BaseEventLoop.subprocess_shell(). Patch written
...
by Vajrasky Kok.
2014-01-31 12:28:30 +01:00
Victor Stinner
dcd9740ad2
Issue #20452 : select and selectors round (again) timeout away from zero for
...
poll and epoll
Improve also debug info to analyze the issue
2014-01-31 12:12:53 +01:00
Victor Stinner
31f65044a9
Issue #20452 : Oops, fix debug code :-/
...
Add also event more debug info
2014-01-31 10:55:55 +01:00
Victor Stinner
0278032110
Issue #20452 : add more info in case of test_asyncio failure to try to debug the
...
failure on buildbot "x86 Ubuntu Shared 3.x"
2014-01-31 09:29:35 +01:00
Guido van Rossum
a849be9c64
asyncio: Fix misc whitespace issues.
2014-01-30 16:05:28 -08:00
Victor Stinner
1c16537327
asyncio: Fix granularity of test_utils.TestLoop.
2014-01-30 16:05:07 -08:00
Victor Stinner
9572898282
asyncio: Future.set_exception(exc) should instantiate exc if it is a class.
2014-01-30 16:01:54 -08:00
Victor Stinner
e623a12297
asyncio: subprocess_shell() and subprocess_exec() now raise ValueError instead of assert.
...
Moreover, bufsize different than 0 is now considered as an error.
2014-01-29 14:35:15 -08:00
Victor Stinner
73f10fd2f1
asyncio: Fix _make_subprocess_transport(): pass extra value to the constructor.
2014-01-29 14:32:20 -08:00
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