lib/package/utils: Improve multiprocess_launch argument passing

The current code for multiple argument passing is horrible. Tweak the
multiprocess_launch function to only convert to a tuple if it isn't already
one, which means we can then use function arguments in a standard way.

(From OE-Core rev: 7c99f90079e722764ebdc30e8d0e781454b3a51a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2025-02-27 13:39:15 +00:00
parent c92709d4c0
commit 430ed4a884
2 changed files with 5 additions and 10 deletions

View File

@@ -18,7 +18,7 @@ import shutil
import oe.cachedpath
def runstrip(arg):
def runstrip(file, elftype, strip, extra_strip_sections=''):
# Function to strip a single file, called from split_and_strip_files below
# A working 'file' (one which works on the target architecture)
#
@@ -28,12 +28,6 @@ def runstrip(arg):
# 8 - shared library
# 16 - kernel module
if len(arg) == 3:
(file, elftype, strip) = arg
extra_strip_sections = ''
else:
(file, elftype, strip, extra_strip_sections) = arg
newmode = None
if not os.access(file, os.W_OK) or os.access(file, os.R_OK):
origmode = os.stat(file)[stat.ST_MODE]
@@ -220,10 +214,9 @@ def file_reverse_translate(file):
return ft
def filedeprunner(arg):
def filedeprunner(pkg, pkgfiles, rpmdeps, pkgdest):
import re, subprocess, shlex
(pkg, pkgfiles, rpmdeps, pkgdest) = arg
provides = {}
requires = {}

View File

@@ -316,7 +316,9 @@ def multiprocess_launch_mp(target, items, max_process, extraargs=None):
items = list(items)
while (items and not errors) or launched:
if not errors and items and len(launched) < max_process:
args = (items.pop(),)
args = items.pop()
if not type(args) is tuple:
args = (args,)
if extraargs is not None:
args = args + extraargs
p = ProcessLaunch(target=target, args=args)