1. 29 Jan, 2015 10 commits
    • Victor Stinner's avatar
    • Victor Stinner's avatar
      asyncio: sync with Tulip · 47cd10d7
      Victor Stinner authored
      Issue #23347: send_signal(), kill() and terminate() methods of
      BaseSubprocessTransport now check if the transport was closed and if the
      process exited.
      
      Issue #23347: Refactor creation of subprocess transports. Changes on
      BaseSubprocessTransport:
      
      * Add a wait() method to wait until the child process exit
      * The constructor now accepts an optional waiter parameter. The _post_init()
        coroutine must not be called explicitly anymore. It makes subprocess
        transports closer to other transports, and it gives more freedom if we want
        later to change completly how subprocess transports are created.
      * close() now kills the process instead of kindly terminate it: the child
        process may ignore SIGTERM and continue to run. Call explicitly terminate()
        and wait() if you want to kindly terminate the child process.
      * close() now logs a warning in debug mode if the process is still running and
        needs to be killed
      * _make_subprocess_transport() is now fully asynchronous again: if the creation
        of the transport failed, wait asynchronously for the process eixt. Before the
        wait was synchronous. This change requires close() to *kill*, and not
        terminate, the child process.
      * Remove the _kill_wait() method, replaced with a more agressive close()
        method. It fixes _make_subprocess_transport() on error.
        BaseSubprocessTransport.close() calls the close() method of pipe transports,
        whereas _kill_wait() closed directly pipes of the subprocess.Popen object
        without unregistering file descriptors from the selector (which caused severe
        bugs).
      
      These changes simplifies the code of subprocess.py.
      47cd10d7
    • Victor Stinner's avatar
      Issue #23243, asyncio: Emit a ResourceWarning when an event loop or a transport · 978a9afc
      Victor Stinner authored
      is not explicitly closed. Close also explicitly transports in test_sslproto.
      978a9afc
    • Stefan Krah's avatar
      3c0cf059
    • Stefan Krah's avatar
    • Victor Stinner's avatar
      asyncio: sync with Tulip · 2934262f
      Victor Stinner authored
      * Cleanup gather(): use cancelled() method instead of using private Future
        attribute
      * Fix _UnixReadPipeTransport and _UnixWritePipeTransport. Only start reading
        when connection_made() has been called.
      * Issue #23333: Fix BaseSelectorEventLoop._accept_connection(). Close the
        transport on error. In debug mode, log errors using call_exception_handler()
      2934262f
    • Victor Stinner's avatar
      54a231d5
    • Victor Stinner's avatar
      asyncio: sync with Tulip · 47bbea71
      Victor Stinner authored
      * _SelectorTransport constructor: extra parameter is now optional
      * Fix _SelectorDatagramTransport constructor. Only start reading after
        connection_made() has been called.
      * Fix _SelectorSslTransport.close(). Don't call protocol.connection_lost() if
        protocol.connection_made() was not called yet: if the SSL handshake failed or
        is still in progress. The close() method can be called if the creation of the
        connection is cancelled, by a timeout for example.
      47bbea71
    • Victor Stinner's avatar
      asyncio: BaseSubprocessTransport._kill_wait() now also call close() · 7b5a900e
      Victor Stinner authored
      close() closes pipes, which is not None yet by _kill_wait().
      7b5a900e
    • Gregory P. Smith's avatar
      Always #define _PyLong_FromDev as we always need it to compile rather than · 702dada2
      Gregory P. Smith authored
      only defining it when HAVE_MKNOD && HAVE_MAKEDEV are true.
      
      This "oops" issue reported by John E. Malmberg on core-mentorship.
      (what kinds of systems don't HAVE_MKNOD && HAVE_MAKEDEV?)
      702dada2
  2. 28 Jan, 2015 7 commits
  3. 27 Jan, 2015 2 commits
    • Victor Stinner's avatar
      asyncio: sync with Tulip · ff018e40
      Victor Stinner authored
      * Remove unused SSLProtocol._closing attribute
      * test_sslproto: skip test if ssl module is missing
      * Python issue #23208: Don't use the traceback of the current handle if we
        already know the traceback of the source. The handle may be more revelant,
        but having 3 tracebacks (handle, source, exception) becomes more difficult to
        read. The handle may be preferred later but it requires more work to make
        this choice.
      ff018e40
    • Berker Peksag's avatar
      Issue #23286: Fix typo in the tutorial. · b68c420d
      Berker Peksag authored
      Patch by Mayank Tripathi.
      b68c420d
  4. 26 Jan, 2015 18 commits
  5. 25 Jan, 2015 3 commits