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

Reply via email to