To me, it sounds like a tremendous scheduling issue if a build job can drown a whole system like that. Shouldn't there be some emphasis on non-waiting threads/processes that haven't done much over those who have hogged the CPU in the past without me having to manually adjust the niceness of every build task?
> If the -j option is given without an argument, make will not limit the number of jobs that can run simultaneously.
Although other implementations might be different of course.
% redo --jobs
redo: ERROR: jobs: missing option argument
%More generally, I try to avoid optional arguments to command options, in line with the guideline in the Single Unix Specification. (I actually picked such ideas up many years ago, before the first POSIX specification, from a book by Eric Foxley titled Unix for Super Users, where there was an appendix on command line option syntax.)
* http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_...
Of course, if the user wants to use the number of cores available, then xe can work that number out and pass it as an argument; and indeed I have done that very thing in some of the package/make scripts that I have published.