From 4d6d27991eb8279fe8077c4dedae51780a8c3426 Mon Sep 17 00:00:00 2001 From: Neal Powell <36735795+pashneal@users.noreply.github.com> Date: Sun, 11 Jan 2026 18:00:08 -0500 Subject: [PATCH] Handle process creation differently for Windows and Unix Linux systems do not support the creationflags parameter - This PR attempts to fix that by using the `start_new_session` parameter on non-windows systems instead. --- .../crossplay_python/battlecode26/__main__.py | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/engine/src/crossplay_python/battlecode26/__main__.py b/engine/src/crossplay_python/battlecode26/__main__.py index 6685e9d1..15122866 100644 --- a/engine/src/crossplay_python/battlecode26/__main__.py +++ b/engine/src/crossplay_python/battlecode26/__main__.py @@ -280,15 +280,27 @@ def main(args=None): get_code(team_a, dir_a) get_code(team_b, dir_b) - Popen( - new_args, - shell=False, - stdin=None, - stdout=None, - stderr=None, - close_fds=True, - creationflags=DETACHED_PROCESS, - ) + if os.name == "nt": + Popen( + new_args, + shell=False, + stdin=None, + stdout=None, + stderr=None, + close_fds=True, + creationflags=DETACHED_PROCESS, + ) + else: + Popen( + new_args, + shell=False, + stdin=None, + stdout=None, + stderr=None, + close_fds=True, + start_new_session=True + ) + else: play(team_a=parsed_args.teamA, team_b=parsed_args.teamB, dir_a=parsed_args.dirA, dir_b=parsed_args.dirB,