asyncio: Close the transport on subprocess creation failure
diff --git a/Lib/asyncio/unix_events.py b/Lib/asyncio/unix_events.py
index 9f4005c..97f9add 100644
--- a/Lib/asyncio/unix_events.py
+++ b/Lib/asyncio/unix_events.py
@@ -177,7 +177,11 @@
             transp = _UnixSubprocessTransport(self, protocol, args, shell,
                                               stdin, stdout, stderr, bufsize,
                                               extra=extra, **kwargs)
-            yield from transp._post_init()
+            try:
+                yield from transp._post_init()
+            except:
+                transp.close()
+                raise
             watcher.add_child_handler(transp.get_pid(),
                                       self._child_watcher_callback, transp)