summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Closed branch remove-joinable-queueremove-joinable-queueA. Jesse Jiryu Davis2015-02-140-0/+0
|
* Tulip issue #220: Restore JoinableQueue as a deprecated alias for Queue.A. Jesse Jiryu Davis2015-02-141-1/+6
| | | | | | To more closely match the standard Queue, asyncio.Queue has "join" and "task_done". JoinableQueue remains as a deprecated alias for Queue to avoid needlessly breaking too much code that depended on it.
* Docstring for Queue.join shouldn't mention threads.A. Jesse Jiryu Davis2015-01-231-2/+2
|
* Tulip issue #220: Merge JoinableQueue with Queue.A. Jesse Jiryu Davis2015-01-232-63/+42
| | | | | To more closely match the standard Queue, asyncio.Queue has "join" and "task_done". JoinableQueue is deleted.
* Tulip issue #219: Fix comments in simple_tcp_server.py exampleVictor Stinner2015-01-231-2/+2
| | | | | Fixing some comments. The server listens on 12345 and client connects on 12345, but the comments state 1234. Patch written by bryan.neff.
* Python issue #23293: Cleanup IocpProactor.close()Victor Stinner2015-01-231-6/+1
| | | | | The special case for connect_pipe() is not more needed. connect_pipe() doesn't use overlapped operations anymore.
* Close transports on errorVictor Stinner2015-01-231-3/+21
| | | | | Fix create_datagram_endpoint(), connect_read_pipe() and connect_write_pipe(): close the transport if the task is cancelled or on error.
* Tulip issue #204: Fix IocpProactor.accept_pipe()Victor Stinner2015-01-222-26/+19
| | | | | | | | Overlapped.ConnectNamedPipe() now returns a boolean: True if the pipe is connected (if ConnectNamedPipe() failed with ERROR_PIPE_CONNECTED), False if the connection is in progress. This change removes multiple hacks in IocpProactor.
* Python issue #23293: Rewrite IocpProactor.connect_pipe()Victor Stinner2015-01-222-110/+48
| | | | | | | | Add _overlapped.ConnectPipe() which tries to connect to the pipe for asynchronous I/O (overlapped): call CreateFile() in a loop until it doesn't fail with ERROR_PIPE_BUSY. Use an increasing delay between 1 ms and 100 ms. Remove Overlapped.WaitNamedPipeAndConnect() which is no more used.
* release.py: Fix helpVictor Stinner2015-01-221-1/+2
|
* IocpProactor.close(): don't cancel futures which are already cancelledVictor Stinner2015-01-221-3/+7
|
* Python issue #23095: IocpProactor.close() must not cancel pendingVictor Stinner2015-01-221-0/+6
| | | | _WaitCancelFuture futures
* BaseEventLoop._create_connection_transport() catchs any exception, not onlyVictor Stinner2015-01-221-1/+1
| | | | Exception
* Python issue #23095: Rewrite _WaitHandleFuture.cancel()Victor Stinner2015-01-212-34/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change fixes a race conditon related to _WaitHandleFuture.cancel() leading to Python crash or "GetQueuedCompletionStatus() returned an unexpected event" logs. Before, the overlapped object was destroyed too early, it was possible that the wait completed whereas the overlapped object was already destroyed. Sometimes, a different overlapped was allocated at the same address, leading to unexpected completition. _WaitHandleFuture.cancel() now waits until the wait is cancelled to clear its reference to the overlapped object. To wait until the cancellation is done, UnregisterWaitEx() is used with an event instead of UnregisterWait(). To wait for this event, a new _WaitCancelFuture class was added. It's a simplified version of _WaitCancelFuture. For example, its cancel() method calls UnregisterWait(), not UnregisterWaitEx(). _WaitCancelFuture should not be cancelled. The overlapped object is kept alive in _WaitHandleFuture until the wait is unregistered. Other changes: * Add _overlapped.UnregisterWaitEx() * Remove fast-path in IocpProactor.wait_for_handle() to immediatly set the result if the wait already completed. I'm not sure that it's safe to call immediatly UnregisterWaitEx() before the completion was signaled. * Add IocpProactor._unregistered() to forget an overlapped which may never be signaled, but may be signaled for the next loop iteration. It avoids to block forever IocpProactor.close() if a wait was cancelled, and it may also avoid some "... unexpected event ..." warnings.
* test_selectors: use asyncio.test_support if test.support is missingVictor Stinner2015-01-211-1/+4
|
* pyflakes: remove unused importVictor Stinner2015-01-161-1/+0
|
* Enhance BaseProactorEventLoop._loop_self_reading()Victor Stinner2015-01-162-5/+12
| | | | | | | | * 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.
* tests: Remove unused function; inline another functionVictor Stinner2015-01-161-9/+1
|
* release.py: fix typoVictor Stinner2015-01-161-3/+3
|
* runtests.py: rephrase the message mentionning randomization of testsVictor Stinner2015-01-161-1/+1
|
* tox.ini: fix commentVictor Stinner2015-01-161-1/+2
|
* Cleanup BaseEventLoop._create_connection_transport()Victor Stinner2015-01-161-1/+1
| | | | Remove the exc variable, it's not used.
* Issue #22685: Fix test_pause_reading() of test_subprocessVictor Stinner2015-01-151-2/+12
| | | | | | | Override the connect_read_pipe() method of the loop to mock immediatly pause_reading() and resume_reading() methods. The test failed randomly on FreeBSD 9 buildbot and on Windows using trollius.
* Backout changeset 3a06020af8cfVictor Stinner2015-01-151-21/+4
| | | | | | | StreamWriter: close() now clears the reference to the transport StreamWriter now raises an exception if it is closed: write(), writelines(), write_eof(), can_write_eof(), get_extra_info(), drain().
* Python issue #23219: cancelling wait_for() now cancels the taskVictor Stinner2015-01-152-4/+35
|
* Close transports in testsVictor Stinner2015-01-154-3/+15
| | | | | | | | | * Use test_utils.run_briefly() to execute pending calls to really close transports * sslproto: mock also _SSLPipe.shutdown(), it's need to close the transport * pipe test: the test doesn't close explicitly the PipeHandle, so ignore the warning instead * test_popen: use the context manager ("with p:") to explicitly close pipes
* Close the transport on subprocess creation failureVictor Stinner2015-01-152-2/+11
|
* Fix _ProactorBasePipeTransport.close()Victor Stinner2015-01-151-1/+3
| | | | | | | Set the _read_fut attribute to None after cancelling it. This change should fix a race condition with _ProactorWritePipeTransport._pipe_closed().
* Fix _ProactorBasePipeTransport.__repr__()Victor Stinner2015-01-151-3/+3
| | | | Check if the _sock attribute is None to check if the transport is closed.
* Python issue #23243: Close explicitly transports in testsVictor Stinner2015-01-153-277/+226
|
* Python issue #23243: Close explicitly event loops in testsVictor Stinner2015-01-153-1/+20
|
* Python issue #23243: Fix _UnixWritePipeTransport.close()Victor Stinner2015-01-152-1/+4
| | | | | Do nothing if the transport is already closed. Before it was not possible to close the transport twice.
* SSLProtocol: set the _transport attribute in the constructorVictor Stinner2015-01-151-0/+1
|
* Python issue #23242: SubprocessStreamProtocol now closes the subprocessVictor Stinner2015-01-151-1/+4
| | | | | | transport at subprocess exit. Clear also its reference to the transport.
* Python issue #22560: Fix SSLProtocol._on_handshake_complete()Victor Stinner2015-01-151-2/+6
| | | | | | Don't call immediatly self._process_write_backlog() but schedule the call using call_soon(). _on_handshake_complete() can be called indirectly from _process_write_backlog(), and _process_write_backlog() is not reentrant.
* StreamWriter: close() now clears the reference to the transportVictor Stinner2015-01-151-4/+21
| | | | | StreamWriter now raises an exception if it is closed: write(), writelines(), write_eof(), can_write_eof(), get_extra_info(), drain().
* PipeHandle now uses None instead of -1 for a closed handleVictor Stinner2015-01-141-5/+5
| | | | Sort also imports in windows_utils.
* Fix test_events on Python older than 3.5Victor Stinner2015-01-141-0/+17
| | | | Skip SSL tests on the ProactorEventLoop if ssl.MemoryIO is missing
* Fix BaseEventLoop._create_connection_transport()Victor Stinner2015-01-141-1/+6
| | | | | Close the transport if the creation of the transport (if the waiter) gets an exception.
* _ProactorBasePipeTransport now sets _sock to None when the transport is closedVictor Stinner2015-01-141-0/+1
|
* Fix BaseSubprocessTransport.close()Victor Stinner2015-01-141-0/+2
| | | | Ignore pipes for which the protocol is not set yet (still equal to None).
* TestLoop.close() now calls the close() method of the parent class ↵Victor Stinner2015-01-141-0/+1
| | | | (BaseEventLoop)
* cleanup BaseSelectorEventLoopVictor Stinner2015-01-141-2/+3
| | | | Create the protocol on a separated line for readability and ease debugging.
* Fix BaseSubprocessTransport._kill_wait()Victor Stinner2015-01-141-1/+1
| | | | Set the _returncode attribute, so close() doesn't try to terminate the process.
* Tests: explicitly close event loops and transportsVictor Stinner2015-01-145-0/+9
|
* UNIX pipe transports: add closed/closing in repr()Victor Stinner2015-01-141-2/+12
| | | | | Add "closed" or "closing" state in the __repr__() method of _UnixReadPipeTransport and _UnixWritePipeTransport classes.
* Python issue #23197: On SSL handshake failure on matching hostname, check ifVictor Stinner2015-01-141-1/+2
| | | | the waiter is cancelled before setting its exception.
* Python issue #23197: On SSL handshake failure, check if the waiter is cancelledVictor Stinner2015-01-144-6/+63
| | | | | | before setting its exception. Add unit tests for this case.
* Cleanup sslproto.pyVictor Stinner2015-01-141-1/+2
|
* Python issue #23173: Fix SubprocessStreamProtocol.connection_made() to handleVictor Stinner2015-01-142-1/+39
| | | | | | cancelled waiter. Add unit test cancelling subprocess methods.