summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/utils.py
diff options
context:
space:
mode:
authorJoshua Watt <JPEWhacker@gmail.com>2025-08-22 00:40:06 +0200
committerSteve Sakoman <steve@sakoman.com>2025-09-17 15:36:44 -0700
commitf00c4968ff34c6a23f2467f310b5aae31ab4947c (patch)
treee48efe2f0c4b596ce75e3b52d37b7cd341130c51 /bitbake/lib/bb/utils.py
parent6400741e0c11d1620a5ebe394d24deec295236f9 (diff)
downloadpoky-f00c4968ff34c6a23f2467f310b5aae31ab4947c.tar.gz
bitbake: Use a "fork" multiprocessing context
Python 3.14 changes the default multiprocessing context from "fork" to "forkserver"; however bitbake heavily relies on "fork" to efficiently pass data to the child processes. As such, make "fork" context in the bb namespace and use it in place of the normal multiprocessing module. Note that multiprocessing contexts were added in Python 3.4, so this should be safe to use even before Python 3.14 [YOCTO #15858] (Bitbake rev: 15d7448e04aa78c827d2cef9eb1a62bd6e0dd119) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Martin Jansa <martin.jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'bitbake/lib/bb/utils.py')
-rw-r--r--bitbake/lib/bb/utils.py4
1 files changed, 1 insertions, 3 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py
index d2f11e4377..1b4fb93a30 100644
--- a/bitbake/lib/bb/utils.py
+++ b/bitbake/lib/bb/utils.py
@@ -14,7 +14,7 @@ import logging
14import bb 14import bb
15import bb.msg 15import bb.msg
16import locale 16import locale
17import multiprocessing 17from bb import multiprocessing
18import fcntl 18import fcntl
19import importlib 19import importlib
20import importlib.machinery 20import importlib.machinery
@@ -1174,8 +1174,6 @@ def process_profilelog(fn, pout = None):
1174# 1174#
1175def multiprocessingpool(*args, **kwargs): 1175def multiprocessingpool(*args, **kwargs):
1176 1176
1177 import multiprocessing.pool
1178 #import multiprocessing.util
1179 #multiprocessing.util.log_to_stderr(10) 1177 #multiprocessing.util.log_to_stderr(10)
1180 # Deal with a multiprocessing bug where signals to the processes would be delayed until the work 1178 # Deal with a multiprocessing bug where signals to the processes would be delayed until the work
1181 # completes. Putting in a timeout means the signals (like SIGINT/SIGTERM) get processed. 1179 # completes. Putting in a timeout means the signals (like SIGINT/SIGTERM) get processed.