History log of /external/python/cpython3/Modules/overlapped.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cc16be85c0b7119854c00fb5c666825deef641cf 08-Sep-2016 Steve Dower <steve.dower@microsoft.com> Issue #27781: Change file system encoding on Windows to UTF-8 (PEP 529)
/external/python/cpython3/Modules/overlapped.c
ccdbe80a56d052aaffa1c1c9df62f63c0baa548b 01-Apr-2016 Victor Stinner <victor.stinner@gmail.com> asyncio: sync overlapped.c with GitHub

On Python 3.3, use aliases:

* PyMem_RawMalloc = PyMem_Malloc
* PyMem_RawFree = PyMem_Free

These aliases are not need in Python 3.5, but this change makes synchronization
of code base simpler.
/external/python/cpython3/Modules/overlapped.c
6150f31963cbc24c529b07f6763854fbb7e62f60 16-Mar-2016 Victor Stinner <victor.stinner@gmail.com> Fix usage of PyMem_Malloc() in overlapped.c

Issue #26563: Replace PyMem_Malloc() with PyMem_RawFree() since
PostToQueueCallback() calls PyMem_RawFree() (previously PyMem_Free()) in a new
C thread which doesn't hold the GIL.
/external/python/cpython3/Modules/overlapped.c
498b1f62dbdf55837d16fcaea9758af0cbebec0d 26-Jan-2015 Victor Stinner <victor.stinner@gmail.com> asyncio, _overlapped.ConnectPipe(): release the GIL
/external/python/cpython3/Modules/overlapped.c
41063d2a59a24e257cd9ce62137e36c862e3ab1e 26-Jan-2015 Victor Stinner <victor.stinner@gmail.com> asyncio, Tulip issue 204: Fix IocpProactor.recv()

If ReadFile() fails with ERROR_BROKEN_PIPE, the operation is not pending: don't
register the overlapped.

I don't know if WSARecv() can fail with ERROR_BROKEN_PIPE. Since
Overlapped.WSARecv() already handled ERROR_BROKEN_PIPE, let me guess that it
has the same behaviour than ReadFile().
/external/python/cpython3/Modules/overlapped.c
2b77c5467f376257ae22cbfbcb3a0e5e6349e92d 22-Jan-2015 Victor Stinner <victor.stinner@gmail.com> asyncio, Tulip issue 204: Fix IocpProactor.accept_pipe()

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.
/external/python/cpython3/Modules/overlapped.c
7ffa2c5fdda8a9cc254edf67c4458b15db1252fa 22-Jan-2015 Victor Stinner <victor.stinner@gmail.com> Issue #23293, asyncio: Rewrite IocpProactor.connect_pipe()

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.
/external/python/cpython3/Modules/overlapped.c
d0a28dee78d099fcadc71147cba4affb6efa0c97 21-Jan-2015 Victor Stinner <victor.stinner@gmail.com> Issue #23095, asyncio: Rewrite _WaitHandleFuture.cancel()

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.
/external/python/cpython3/Modules/overlapped.c
91445fbeb05f77551a8f83c5188362093916b0e1 30-Jan-2014 Victor Stinner <victor.stinner@gmail.com> overlapped.c: Fix usage of the union

* read_buffer can only be used for TYPE_READ and TYPE_ACCEPT types
* write_buffer can only be used for TYPE_WRITE type
/external/python/cpython3/Modules/overlapped.c
90fb914b4b90f74a9ab4c12d2a3aa2fa2090f3c7 30-Oct-2013 Guido van Rossum <guido@dropbox.com> asyncio: Make the IOCP proactor support "waitable" handles (Richard Oudkerk).
/external/python/cpython3/Modules/overlapped.c
27b7c7ebf1039e96cac41b6330cf16b5632d9e49 17-Oct-2013 Guido van Rossum <guido@dropbox.com> Initial checkin of asyncio package (== Tulip, == PEP 3156).
/external/python/cpython3/Modules/overlapped.c