From a508ebafadcfe2e25554b029593f3e66d01ede6c Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 16 Mar 2020 21:50:36 +0100 Subject: [PATCH] Issue #309: Add Python 3.9 support to spawnv_passfds() Python 3.9 added (umask, user, group, extra_groups) parameters to _posixsubprocess.fork_exec(). --- billiard/compat.py | 8 ++++++-- tox.ini | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/billiard/compat.py b/billiard/compat.py index b172d9a..b5ce7c7 100644 --- a/billiard/compat.py +++ b/billiard/compat.py @@ -220,10 +220,14 @@ def spawnv_passfds(path, args, passfds): passfds = sorted(passfds) errpipe_read, errpipe_write = os.pipe() try: - return _posixsubprocess.fork_exec( + args = [ args, [fsencode(path)], True, tuple(passfds), None, None, -1, -1, -1, -1, -1, -1, errpipe_read, errpipe_write, - False, False, None) + False, False] + if sys.version_info >= (3, 9): + args.extend((None, None, None, -1)) # group, extra_groups, user, umask + args.append(None) # preexec_fn + return _posixsubprocess.fork_exec(*args) finally: os.close(errpipe_read) os.close(errpipe_write)