@@ -414,15 +414,36 @@ worker_id(wrkr) = WORKER_IDS[wrkr.proc_pid]
414414Add `X` worker processes.
415415"""
416416addworkers (X; kwargs... ) = [addworker (; kwargs... ) for _ in 1 : X]
417- function addworker (; env= Vector {Pair{String, String}} ())
417+
418+ """
419+ addworker(; env=Vector{Pair{String, String}}(), exename=nothing, exeflags=nothing)
420+
421+ Add a single worker process.
422+
423+ ## Arguments
424+ - `env`: Vector of environment variable pairs to set for the worker process.
425+ - `exename`: Custom executable to use for the worker process.
426+ - `exeflags`: Custom flags to pass to the worker process.
427+ """
428+ function addworker (;
429+ env = Vector {Pair{String, String}} (),
430+ exename = nothing , exeflags = nothing
431+ )
418432 exe = test_exe ()
419- exeflags = exe[2 : end ]
433+ if exename === nothing
434+ exename = exe[1 ]
435+ end
436+ if exeflags != = nothing
437+ exeflags = vcat (exe[2 : end ], exeflags)
438+ else
439+ exeflags = exe[2 : end ]
440+ end
420441
421442 push! (env, " JULIA_NUM_THREADS" => " 1" )
422443 # Malt already sets OPENBLAS_NUM_THREADS to 1
423444 push! (env, " OPENBLAS_NUM_THREADS" => " 1" )
424445
425- wrkr = Malt. Worker (;exeflags, env)
446+ wrkr = Malt. Worker (; exename, exeflags, env)
426447 WORKER_IDS[wrkr. proc_pid] = length (WORKER_IDS) + 1
427448 return wrkr
428449end
0 commit comments