From 65cf1c98541ea5d8f574cbf4140882d688ba577f Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Tue, 4 Dec 2018 23:20:14 -0500 Subject: [PATCH] Rename jwack.py -> jobserver.py. I'm not really sure why I called it jwack. I think it was kind of a wack jobserver(tm). But nowadays most of the wack-ness is gone. --- redo/builder.py | 22 +++++++++++----------- redo/cmd_ifchange.py | 6 +++--- redo/cmd_redo.py | 6 +++--- redo/{jwack.py => jobserver.py} | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) rename redo/{jwack.py => jobserver.py} (99%) diff --git a/redo/builder.py b/redo/builder.py index 40ed870..9226491 100644 --- a/redo/builder.py +++ b/redo/builder.py @@ -1,5 +1,5 @@ import sys, os, errno, stat, signal, time -import vars, jwack, state, paths +import vars, jobserver, state, paths from helpers import unlink, close_on_exec import logs from logs import debug2, err, warn, meta, check_tty @@ -221,7 +221,7 @@ class BuildJob(object): dof.save() state.commit() meta('do', state.target_relpath(t)) - jwack.start_job(t, self._do_subproc, self._after) + jobserver.start_job(t, self._do_subproc, self._after) def _start_unlocked(self, dirty): # out-of-band redo of some sub-objects. This happens when we're not @@ -250,7 +250,7 @@ class BuildJob(object): # returns only if there's an exception def after(t, rv): return self._after2(rv) - jwack.start_job(self.t, run, after) + jobserver.start_job(self.t, run, after) def _do_subproc(self): # careful: REDO_PWD was the PWD relative to the STARTPATH at the time @@ -432,9 +432,9 @@ def main(targets, shouldbuildfunc): if t in seen: continue seen[t] = 1 - if not jwack.has_token(): + if not jobserver.has_token(): state.commit() - jwack.ensure_token_or_cheat(t, cheat) + jobserver.ensure_token_or_cheat(t, cheat) if retcode[0] and not vars.KEEP_GOING: break if not state.check_sane(): @@ -471,11 +471,11 @@ def main(targets, shouldbuildfunc): # do anything. The only exception is if we're invoked as redo instead # of redo-ifchange; then we have to redo it even if someone else already # did. But that should be rare. - while locked or jwack.running(): + while locked or jobserver.running(): state.commit() - jwack.wait_all() - assert jwack._mytokens == 0 # pylint: disable=protected-access - jwack.ensure_token_or_cheat('self', cheat) + jobserver.wait_all() + assert jobserver._mytokens == 0 # pylint: disable=protected-access + jobserver.ensure_token_or_cheat('self', cheat) # at this point, we don't have any children holding any tokens, so # it's okay to block below. if retcode[0] and not vars.KEEP_GOING: @@ -507,12 +507,12 @@ def main(targets, shouldbuildfunc): # give up our personal token while we wait for the lock to # be released; but we should never run ensure_token() while # holding a lock, or we could cause deadlocks. - jwack.release_mine() + jobserver.release_mine() lock.waitlock() # now t is definitely free, so we get to decide whether # to build it. lock.unlock() - jwack.ensure_token_or_cheat(t, cheat) + jobserver.ensure_token_or_cheat(t, cheat) lock.trylock() assert lock.owned meta('unlocked', state.target_relpath(t)) diff --git a/redo/cmd_ifchange.py b/redo/cmd_ifchange.py index d27d03f..48e6eae 100644 --- a/redo/cmd_ifchange.py +++ b/redo/cmd_ifchange.py @@ -3,7 +3,7 @@ import os, sys, traceback import vars_init vars_init.init(sys.argv[1:]) -import vars, state, builder, jwack, deps +import vars, state, builder, jobserver, deps from logs import debug2, err def should_build(t): @@ -32,7 +32,7 @@ def main(): else: f = me = None debug2('redo-ifchange: not adding depends.\n') - jwack.setup(1) + jobserver.setup(1) try: targets = sys.argv[1:] if f: @@ -46,7 +46,7 @@ def main(): state.rollback() finally: try: - jwack.force_return_tokens() + jobserver.force_return_tokens() except Exception, e: # pylint: disable=broad-except traceback.print_exc(100, sys.stderr) err('unexpected error: %r\n' % e) diff --git a/redo/cmd_redo.py b/redo/cmd_redo.py index 8e2ea5d..ac0f372 100644 --- a/redo/cmd_redo.py +++ b/redo/cmd_redo.py @@ -74,7 +74,7 @@ if opt.no_log: import vars_init vars_init.init(targets) -import vars, state, builder, jwack +import vars, state, builder, jobserver from logs import warn, err def main(): @@ -97,7 +97,7 @@ def main(): if j < 1 or j > 1000: err('invalid --jobs value: %r\n' % opt.jobs) - jwack.setup(j) + jobserver.setup(j) try: assert state.is_flushed() retcode = builder.main(targets, lambda t: (True, True)) @@ -107,7 +107,7 @@ def main(): state.rollback() finally: try: - jwack.force_return_tokens() + jobserver.force_return_tokens() except Exception, e: # pylint: disable=broad-except traceback.print_exc(100, sys.stderr) err('unexpected error: %r\n' % e) diff --git a/redo/jwack.py b/redo/jobserver.py similarity index 99% rename from redo/jwack.py rename to redo/jobserver.py index 8e7852f..b31f536 100644 --- a/redo/jwack.py +++ b/redo/jobserver.py @@ -88,7 +88,7 @@ _waitfds = {} def _debug(s): if 0: - sys.stderr.write('jwack#%d: %s' % (os.getpid(), s)) + sys.stderr.write('job#%d: %s' % (os.getpid(), s)) def _create_tokens(n):