Skip to content

Commit

Permalink
bpo-46364: only use socket for stdin on AIX
Browse files Browse the repository at this point in the history
Signed-off-by: Christoph Hamsen <hamsen.christoph@posteo.de>
  • Loading branch information
xopham committed Oct 13, 2022
1 parent 7c770d3 commit a0a38c1
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
7 changes: 3 additions & 4 deletions Lib/asyncio/unix_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -788,12 +788,11 @@ class _UnixSubprocessTransport(base_subprocess.BaseSubprocessTransport):

def _start(self, args, shell, stdin, stdout, stderr, bufsize, **kwargs):
stdin_w = None
if stdin == subprocess.PIPE:
# Use a socket pair for stdin, since not all platforms
if stdin == subprocess.PIPE and sys.platform.startswith('aix'):
# Use a socket pair for stdin on AIX, since it does not
# support selecting read events on the write end of a
# socket (which we use in order to detect closing of the
# other end). Notably this is needed on AIX, and works
# just fine on other platforms.
# other end).
stdin, stdin_w = socket.socketpair()
try:
self._proc = subprocess.Popen(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Restrict use of sockets instead of pipes for stdin of subprocesses created by :mod:`asyncio` to AIX platform only.

0 comments on commit a0a38c1

Please sign in to comment.