summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* hgignore: ignore .toxtracebackVictor Stinner2015-01-081-0/+1
|
* add _get_sourceVictor Stinner2014-11-132-3/+10
|
* disable disable_logger() to get logsVictor Stinner2014-11-131-1/+0
|
* Log the handle tbVictor Stinner2014-11-131-4/+11
|
* _get_traceback() logs the task or the handleVictor Stinner2014-11-131-4/+5
|
* call_exception_handler: log tb of the current handleVictor Stinner2014-11-131-0/+8
|
* In fact, the source traceback of the current handle is more useful than theVictor Stinner2014-11-051-2/+7
| | | | source traceback of the transport.
* _get_traceback() injects source traceback of the current handleVictor Stinner2014-10-311-17/+34
|
* Use source traceback in _FlowControlMixinVictor Stinner2014-10-311-4/+12
|
* use source traceback in more placesVictor Stinner2014-10-313-15/+38
|
* Use source traceback in BaseSubprocessTransportVictor Stinner2014-10-311-0/+3
|
* Add _format_source_traceback() functionVictor Stinner2014-10-302-3/+10
|
* _get_traceback(): inject the task tracebackVictor Stinner2014-10-301-1/+15
|
* Use the source traceback in repr() of transportsVictor Stinner2014-10-294-0/+13
|
* Pass source traceback to call_exception_handler()Victor Stinner2014-10-293-8/+20
|
* Add source traceback to transportsVictor Stinner2014-10-293-16/+58
| | | | proactor, selector and unix transports
* Add source traceback to BaseSubprocessTransportVictor Stinner2014-10-293-13/+20
|
* Add a new BaseEventLoop._get_traceback() methodVictor Stinner2014-10-293-8/+7
|
* test: use a real event loop for Handle and TimerHandle testsVictor Stinner2014-10-291-11/+12
|
* test: pass the event loop, not a mock to HandleVictor Stinner2014-10-291-2/+1
|
* Reuse socket.socketpair() on Windows if availableVictor Stinner2014-10-142-41/+47
| | | | | | | Since Python 3.5, socket.socketpair() is now also available on Windows. Make csock blocking before calling the accept() method, and fix also a typo in an error message.
* Enhance protocol representationVictor Stinner2014-10-142-2/+13
| | | | Add "closed" or "closing" to repr() of selector and proactor transports
* run_forever() now consumes BaseException of the temporary taskVictor Stinner2014-10-112-2/+30
| | | | | If the coroutine raised a BaseException, consume the exception to not log a warning. The caller doesn't have access to the local task.
* Python issue 22448: cleanup _run_once(), only iterate once to remove delayed3.4.2Victor Stinner2014-09-301-4/+7
| | | | calls that were cancelled.
* test_tasks: Fix test_env_var_debug to use correct asyncio module (issue #207)Yury Selivanov2014-09-251-4/+11
|
* Improve canceled timer callback handles cleanup (CPython issue #22448)Yury Selivanov2014-09-254-26/+145
| | | | Patch by Joshua Moore-Oliva.
* unix_events: Move import statement to sync code with cpythonYury Selivanov2014-09-241-1/+2
|
* tasks.py: Sync comments updates from cpython treeYury Selivanov2014-09-241-9/+10
|
* Python issue #22369: Change "context manager protocol" to "context ↵Victor Stinner2014-09-171-2/+2
| | | | | | management protocol". Patch written by Serhiy Storchaka <storchaka@gmail.com>.
* Fix Handle and TimerHandle repr in debug modeVictor Stinner2014-09-172-17/+24
| | | | | Tulip issue #206: In debug mode, keep the callback in the representation of Handle and TimerHandle after cancel().
* Tulip issue #205: Fix a race condition in BaseSelectorEventLoop.sock_connect()Victor Stinner2014-08-312-35/+83
| | | | | | | | | | | | | | | | | | | | There is a race condition in create_connection() used with wait_for() to have a timeout. sock_connect() registers the file descriptor of the socket to be notified of write event (if connect() raises BlockingIOError). When create_connection() is cancelled with a TimeoutError, sock_connect() coroutine gets the exception, but it doesn't unregister the file descriptor for write event. create_connection() gets the TimeoutError and closes the socket. If you call again create_connection(), the new socket will likely gets the same file descriptor, which is still registered in the selector. When sock_connect() calls add_writer(), it tries to modify the entry instead of creating a new one. This issue was originally reported in the Trollius project, but the bug comes from Tulip in fact (Trollius is based on Tulip): https://bitbucket.org/enovance/trollius/issue/15/after-timeouterror-on-wait_for This change fixes the race condition. It also makes sock_connect() more reliable (and portable) is sock.connect() raises an InterruptedError.
* runtests.py: display a message to mention if tests are run in debug or ↵Victor Stinner2014-08-281-0/+5
| | | | release mode
* Tulip issue #201: Fix a race condition in wait_for()Victor Stinner2014-08-282-6/+24
| | | | | | Don't raise a TimeoutError if we reached the timeout and the future completed in the same iteration of the event loop. A side effect of the bug is that Queue.get() looses items.
* Tulip issue #203: Add _FlowControlMixin.get_write_buffer_limits() methodVictor Stinner2014-08-262-0/+5
|
* Tulip issue #200: Log errors in debug mode instead of simply ignoring them.Victor Stinner2014-08-254-4/+23
|
* Tulip issue #200: _WaitHandleFuture._unregister_wait() now catchs and logsVictor Stinner2014-08-251-3/+10
| | | | exceptions.
* Don't log expected errors in unit testsVictor Stinner2014-07-302-8/+14
|
* _fatal_error() method of _UnixReadPipeTransport and _UnixWritePipeTransport nowVictor Stinner2014-07-301-2/+8
| | | | log all exceptions in debug mode
* Fix unit tests in debug mode: mock a non-blocking socket for socket operationsVictor Stinner2014-07-303-5/+13
| | | | which now raise an exception if the socket is blocking.
* Python issue 22063: socket operations (sock_recv, sock_sendall, sock_connect,Victor Stinner2014-07-302-24/+18
| | | | | | sock_accept) of the proactor event loop don't raise an exception in debug mode if the socket are in blocking mode. Overlapped operations also work on blocking sockets.
* Fix debug log in BaseEventLoop.create_connection(): get the socket object fromVictor Stinner2014-07-303-1/+6
| | | | | | | | the transport because SSL transport closes the old socket and creates a new SSL socket object. Remove also the _SelectorSslTransport._rawsock attribute: it contained the closed socket (not very useful) and it was not used.
* Fix _SelectorTransport.__repr__() if the transport was closedVictor Stinner2014-07-301-14/+16
|
* PipeServer.close() now cancels the "accept pipe" future which cancels theVictor Stinner2014-07-301-3/+12
| | | | overlapped operation.
* Python issue 22063: socket operations (socket,recv, sock_sendall, sock_connect,Victor Stinner2014-07-293-0/+34
| | | | sock_accept) now raise an exception in debug mode if sockets are in blocking mode.
* Use the new os.set_blocking() function of Python 3.5 if availableVictor Stinner2014-07-292-10/+14
|
* Remove workaround in test_futures, no more neededVictor Stinner2014-07-291-6/+0
|
* _WaitHandleFuture.cancel() now notify IocpProactor through the overlappedVictor Stinner2014-07-291-3/+13
| | | | object that the wait was cancelled.
* Optimize IocpProactor.wait_for_handle() gets the result if the wait is signaledVictor Stinner2014-07-291-6/+20
| | | | immediatly.
* Fix repr(_WaitHandleFuture)Victor Stinner2014-07-291-1/+1
|
* _WaitHandleFuture and _OverlappedFuture: hide frames of internal calls in theVictor Stinner2014-07-291-0/+6
| | | | source traceback.