Fix the case where the number of jobs is less than the

number of threads.  In that case make the number of threads
equal to the number of jobs and launch one jobs on each
thread.  This makes things work like make -j.

llvm-svn: 127045
This commit is contained in:
David Greene 2011-03-04 23:02:52 +00:00
parent 874472584d
commit 9e8963acfd
1 changed files with 12 additions and 3 deletions

View File

@ -650,7 +650,8 @@ class Builder(threading.Thread):
def configure(self, component, srcdir, builddir, flags, env): def configure(self, component, srcdir, builddir, flags, env):
self.logger.debug("Configure " + str(flags)) self.logger.debug("Configure " + str(flags) + " " + str(srcdir) + " -> "
+ str(builddir))
configure_files = dict( configure_files = dict(
llvm=[(srcdir + "/configure", builddir + "/Makefile")], llvm=[(srcdir + "/configure", builddir + "/Makefile")],
@ -721,8 +722,16 @@ branch_abbrev = get_path_abbrevs(set(options.branch))
work_queue = queue.Queue() work_queue = queue.Queue()
for t in range(options.threads): jobs = options.jobs // options.threads
jobs = options.jobs // options.threads if jobs == 0:
jobs = 1
numthreads = options.threads
if jobs < numthreads:
numthreads = jobs
jobs = 1
for t in range(numthreads):
builder = Builder(work_queue, jobs, builder = Builder(work_queue, jobs,
build_abbrev, source_abbrev, branch_abbrev, build_abbrev, source_abbrev, branch_abbrev,
options) options)