8000 bpo-46364: Use sockets only for stdin of asyncio on AIX by xopham · Pull Request #30596 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

bpo-46364: Use sockets only for stdin of asyncio on AIX #30596

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 13, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
bpo-46364: only use socket for stdin on AIX
Signed-off-by: Christoph Hamsen <hamsen.christoph@posteo.de>
  • Loading branch information
xopham committed Oct 13, 2022
commit a0a38c1bd9870472a849b009fee94077d40278fd
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