commit: 07dbfbdf0504387fe96f865440550b720245f0bb Author: Zac Medico <zmedico <AT> gentoo <DOT> org> AuthorDate: Thu Oct 5 04:36:43 2023 +0000 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> CommitDate: Thu Oct 5 04:37:06 2023 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=07dbfbdf
ManifestProcess: Migrate to ForkProcess target parameter Bug: https://bugs.gentoo.org/915099 Signed-off-by: Zac Medico <zmedico <AT> gentoo.org> .../ebuild/_parallel_manifest/ManifestProcess.py | 28 +++++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/lib/portage/package/ebuild/_parallel_manifest/ManifestProcess.py b/lib/portage/package/ebuild/_parallel_manifest/ManifestProcess.py index f1a30670b4..ec2d5bdfc2 100644 --- a/lib/portage/package/ebuild/_parallel_manifest/ManifestProcess.py +++ b/lib/portage/package/ebuild/_parallel_manifest/ManifestProcess.py @@ -1,6 +1,8 @@ -# Copyright 2012 Gentoo Foundation +# Copyright 2012-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +import functools + import portage from portage import os from portage.exception import FileNotFound, PermissionDenied, PortagePackageException @@ -13,11 +15,25 @@ class ManifestProcess(ForkProcess): MODIFIED = 16 - def _run(self): - mf = self.repo_config.load_manifest( - os.path.join(self.repo_config.location, self.cp), + def _start(self): + self.target = functools.partial( + self._target, + self.cp, self.distdir, - fetchlist_dict=self.fetchlist_dict, + self.fetchlist_dict, + self.repo_config, + ) + super()._start() + + @staticmethod + def _target(cp, distdir, fetchlist_dict, repo_config): + """ + TODO: Make all arguments picklable for the multiprocessing spawn start method. + """ + mf = repo_config.load_manifest( + os.path.join(repo_config.location, cp), + distdir, + fetchlist_dict=fetchlist_dict, ) try: @@ -43,5 +59,5 @@ class ManifestProcess(ForkProcess): return 1 else: if modified: - return self.MODIFIED + return ManifestProcess.MODIFIED return os.EX_OK
