Wait for concurrent jobs on error
Exiting immediately when one of the jobs fails can leave source and
build directories in a bad state. For example interrupting the kernel
link process leaves an empty file which causes build to fail on the next
attempt. Killing git clone can leave index.lock files which causes an
error on the next attempt.
When a process returns an error, mark the build as failed (by setting
exec_error) and clear the queue but keep running until the concurrent
processes complete.
Signed-off-by:
Jean-Philippe Brucker <jean-philippe@linaro.org>