From 0399b2738a4bf953ad16f6762fa317aa0a3ea898 Mon Sep 17 00:00:00 2001 From: LittleLightLittleFire Date: Tue, 3 Mar 2026 16:15:28 +1100 Subject: [PATCH] fix: support forkserver multiprocessing start method (Python 3.14+) Python 3.14 changed the default multiprocessing start method on Linux from "fork" to "forkserver". The _store_attributes guard only passed cross-process state for "spawn", leaving "forkserver" children with None for run_root_dir and other attributes. Invert the condition to only skip for "fork", which is the only method that inherits full parent memory. --- check50/runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check50/runner.py b/check50/runner.py index ab321c6..fd52d1a 100644 --- a/check50/runner.py +++ b/check50/runner.py @@ -347,7 +347,7 @@ def _store_attributes(self): """ # Attributes only need to be passed explicitly to child processes when using spawn - if multiprocessing.get_start_method() != "spawn": + if multiprocessing.get_start_method() == "fork": return self._attribute_values = [eval(name) for name in self.CROSS_PROCESS_ATTRIBUTES]