https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66005
--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Another possibility would be pick up one runtest (e.g. the first one using O_EXCL which creates some file) and let it perform all executions from that point on instead of doing the compilations, where the other runtest would feed what needs to be executed and later deleted say through a pipe. The reading through pipe would ensure that it is able to wait if there is no immediate work for it. Of course we have dg-set-env-var which complicates things a little bit, probably those would need to be transfered to the execution job together with what program should run, what options should be passed to it, what LD_LIBRARY_PATH should be used etc. One issue is make sure all the executable names are unique even at all optimization levels, we can't have target1.exe created more than once.