1. 01 Aug, 2014 1 commit
  2. 30 Jul, 2014 3 commits
  3. 29 Jul, 2014 8 commits
  4. 28 Jul, 2014 5 commits
  5. 27 Jul, 2014 2 commits
    • Victor Stinner's avatar
      asyncio, tulip issue 196: ProactorIocp._register() now registers the overlapped · 42d3bdee
      Victor Stinner authored
      in the _cache dictionary, even if we already got the result. We need to keep a
      reference to the overlapped object, otherwise the memory may be reused and
      GetQueuedCompletionStatus() may use random bytes and behaves badly.
      
      There is still a hack for ConnectNamedPipe(): the overlapped object is not
      register into _cache if the overlapped object completed directly.
      
      Log also an error in debug mode in ProactorIocp._loop() if we get an unexpected
      event.
      
      Add a protection in ProactorIocp.close() to avoid blocking, even if it should
      not happen. I still don't understand exactly why some the completion of some
      overlapped objects are not notified.
      42d3bdee
    • Terry Jan Reedy's avatar
  6. 26 Jul, 2014 5 commits
  7. 25 Jul, 2014 12 commits
  8. 24 Jul, 2014 4 commits
    • Victor Stinner's avatar
      asyncio: sync with Tulip · fea6a100
      Victor Stinner authored
      Improve stability of the proactor event loop, especially operations on
      overlapped objects:
      
      * Tulip issue 195: Don't call UnregisterWait() twice if a _WaitHandleFuture is
        cancelled twice to fix a crash.
      * IocpProactor.close(): cancel futures to cancel overlapped operations, instead
        of cancelling directly overlapped operations. Future objects may not call
        ov.cancel() if the future was cancelled or if the overlapped was already
        cancelled. The cancel() method of the future may also catch exceptions. Log
        also errors on cancellation.
      * tests: rename "f" to "fut"
      * Add a __repr__() method to IocpProactor
      * Add a destructor to IocpProactor which closes it
      * _OverlappedFuture.cancel() doesn't cancel the overlapped anymore if it is
        done: if it is already cancelled or completed. Log also an error if the
        cancellation failed.
      * Add the address of the overlapped object in repr(_OverlappedFuture)
      * _OverlappedFuture truncates the source traceback to hide the call to the
        parent constructor (useless in debug).
      fea6a100
    • Victor Stinner's avatar
      Issue #19884, readline: calling rl_variable_bind ("enable-meta-key", "off") · 92639cce
      Victor Stinner authored
      does crash on Mac OS X which uses libedit instead of readline.
      92639cce
    • Victor Stinner's avatar
      Issue #16133: The asynchat.async_chat.handle_read() method now ignores · 45cff66c
      Victor Stinner authored
      BlockingIOError exceptions. Initial patch written by Xavier de Gaye.
      
      Document also in asyncore documentation that recv() may raise BlockingIOError.
      45cff66c
    • Victor Stinner's avatar
      992019c0