diff options
author | Joshua Watt <JPEWhacker@gmail.com> | 2025-08-22 00:40:06 +0200 |
---|---|---|
committer | Steve Sakoman <steve@sakoman.com> | 2025-09-17 15:36:44 -0700 |
commit | f00c4968ff34c6a23f2467f310b5aae31ab4947c (patch) | |
tree | e48efe2f0c4b596ce75e3b52d37b7cd341130c51 /bitbake/lib/bb/utils.py | |
parent | 6400741e0c11d1620a5ebe394d24deec295236f9 (diff) | |
download | poky-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.py | 4 |
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 | |||
14 | import bb | 14 | import bb |
15 | import bb.msg | 15 | import bb.msg |
16 | import locale | 16 | import locale |
17 | import multiprocessing | 17 | from bb import multiprocessing |
18 | import fcntl | 18 | import fcntl |
19 | import importlib | 19 | import importlib |
20 | import importlib.machinery | 20 | import importlib.machinery |
@@ -1174,8 +1174,6 @@ def process_profilelog(fn, pout = None): | |||
1174 | # | 1174 | # |
1175 | def multiprocessingpool(*args, **kwargs): | 1175 | def 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. |