@@ -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