Greetings! *** goredo [2024-09-05 21:49]: >Right now redo is free to run anyone of targets 10-19. Let's say it picks target 10. Starts executing until it hits redo-ifchange 100 ... 109. Blocks again. Now, redo can pick any target from 11-19 and 100-109. We have two more processes open. I see you point, ok. But how can we run targets in parallel? The very first process has redo-ifchange with 10 targets. It runs one of them. But it does not know when (or if at all) that running job will run any other targets further. So if we want to build two jobs in parallel, when we should run the second job? We do not know if already running one will run jobs further. If we will wait for its completion, then all spent time we were running only a single target, without even trying to run another job, wasted time. If goredo runs redo-ifchange with thousand of targets, then it runs runScript() function inside itself for each of those target. But it does not create additional process until it gets the job token. If we run with two jobs (-j 2) at most, and if already two jobs are running, then no additional process will be created, until any of those jobs finishes and returns job token back. Of course all of that will not work, if number of allowed jobs is infinite. -- Sergey Matveev (http://www.stargrave.org/) OpenPGP: 12AD 3268 9C66 0D42 6967 FD75 CB82 0563 2107 AD8A