Commit 43e5c8f1 authored by Committed by Duncan CouttsBrowse files
Parallelise the install command This is based on Mikhail Glushenkov's patches.
It adds a '-j N' (= 'number of jobs') option for the 'install' command, which can be used to specify the number of concurrent workers. If possible, at most N packages will be built concurrently. This version of the patch is less featureful than Mikhail's version but also rather simpler. The key difference compared to Mikhail's version is that this version is lacking the output serialisation and the ability to tag each output message with the task it came from. All output is interleaved. The next step will be to make parallel builds log to files rather than the console and only to display a summary on the console. In addition to not having to change the output functions, the code is a bit simpler by keep the structure of the code the same as before, rather than splitting it into a number of concurrent tasks with channels. Instead each task simply executes the same pattern of install actions and concurrency limits are enforced using semaphores.