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.
This commit is contained in:
Avery Pennarun 2018-12-04 23:20:14 -05:00
commit 65cf1c9854
4 changed files with 18 additions and 18 deletions

View file

@ -1,5 +1,5 @@
import sys, os, errno, stat, signal, time import sys, os, errno, stat, signal, time
import vars, jwack, state, paths import vars, jobserver, state, paths
from helpers import unlink, close_on_exec from helpers import unlink, close_on_exec
import logs import logs
from logs import debug2, err, warn, meta, check_tty from logs import debug2, err, warn, meta, check_tty
@ -221,7 +221,7 @@ class BuildJob(object):
dof.save() dof.save()
state.commit() state.commit()
meta('do', state.target_relpath(t)) 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): def _start_unlocked(self, dirty):
# out-of-band redo of some sub-objects. This happens when we're not # 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 # returns only if there's an exception
def after(t, rv): def after(t, rv):
return self._after2(rv) return self._after2(rv)
jwack.start_job(self.t, run, after) jobserver.start_job(self.t, run, after)
def _do_subproc(self): def _do_subproc(self):
# careful: REDO_PWD was the PWD relative to the STARTPATH at the time # 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: if t in seen:
continue continue
seen[t] = 1 seen[t] = 1
if not jwack.has_token(): if not jobserver.has_token():
state.commit() state.commit()
jwack.ensure_token_or_cheat(t, cheat) jobserver.ensure_token_or_cheat(t, cheat)
if retcode[0] and not vars.KEEP_GOING: if retcode[0] and not vars.KEEP_GOING:
break break
if not state.check_sane(): 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 # 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 # of redo-ifchange; then we have to redo it even if someone else already
# did. But that should be rare. # did. But that should be rare.
while locked or jwack.running(): while locked or jobserver.running():
state.commit() state.commit()
jwack.wait_all() jobserver.wait_all()
assert jwack._mytokens == 0 # pylint: disable=protected-access assert jobserver._mytokens == 0 # pylint: disable=protected-access
jwack.ensure_token_or_cheat('self', cheat) jobserver.ensure_token_or_cheat('self', cheat)
# at this point, we don't have any children holding any tokens, so # at this point, we don't have any children holding any tokens, so
# it's okay to block below. # it's okay to block below.
if retcode[0] and not vars.KEEP_GOING: 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 # give up our personal token while we wait for the lock to
# be released; but we should never run ensure_token() while # be released; but we should never run ensure_token() while
# holding a lock, or we could cause deadlocks. # holding a lock, or we could cause deadlocks.
jwack.release_mine() jobserver.release_mine()
lock.waitlock() lock.waitlock()
# now t is definitely free, so we get to decide whether # now t is definitely free, so we get to decide whether
# to build it. # to build it.
lock.unlock() lock.unlock()
jwack.ensure_token_or_cheat(t, cheat) jobserver.ensure_token_or_cheat(t, cheat)
lock.trylock() lock.trylock()
assert lock.owned assert lock.owned
meta('unlocked', state.target_relpath(t)) meta('unlocked', state.target_relpath(t))

View file

@ -3,7 +3,7 @@ import os, sys, traceback
import vars_init import vars_init
vars_init.init(sys.argv[1:]) vars_init.init(sys.argv[1:])
import vars, state, builder, jwack, deps import vars, state, builder, jobserver, deps
from logs import debug2, err from logs import debug2, err
def should_build(t): def should_build(t):
@ -32,7 +32,7 @@ def main():
else: else:
f = me = None f = me = None
debug2('redo-ifchange: not adding depends.\n') debug2('redo-ifchange: not adding depends.\n')
jwack.setup(1) jobserver.setup(1)
try: try:
targets = sys.argv[1:] targets = sys.argv[1:]
if f: if f:
@ -46,7 +46,7 @@ def main():
state.rollback() state.rollback()
finally: finally:
try: try:
jwack.force_return_tokens() jobserver.force_return_tokens()
except Exception, e: # pylint: disable=broad-except except Exception, e: # pylint: disable=broad-except
traceback.print_exc(100, sys.stderr) traceback.print_exc(100, sys.stderr)
err('unexpected error: %r\n' % e) err('unexpected error: %r\n' % e)

View file

@ -74,7 +74,7 @@ if opt.no_log:
import vars_init import vars_init
vars_init.init(targets) vars_init.init(targets)
import vars, state, builder, jwack import vars, state, builder, jobserver
from logs import warn, err from logs import warn, err
def main(): def main():
@ -97,7 +97,7 @@ def main():
if j < 1 or j > 1000: if j < 1 or j > 1000:
err('invalid --jobs value: %r\n' % opt.jobs) err('invalid --jobs value: %r\n' % opt.jobs)
jwack.setup(j) jobserver.setup(j)
try: try:
assert state.is_flushed() assert state.is_flushed()
retcode = builder.main(targets, lambda t: (True, True)) retcode = builder.main(targets, lambda t: (True, True))
@ -107,7 +107,7 @@ def main():
state.rollback() state.rollback()
finally: finally:
try: try:
jwack.force_return_tokens() jobserver.force_return_tokens()
except Exception, e: # pylint: disable=broad-except except Exception, e: # pylint: disable=broad-except
traceback.print_exc(100, sys.stderr) traceback.print_exc(100, sys.stderr)
err('unexpected error: %r\n' % e) err('unexpected error: %r\n' % e)

View file

@ -88,7 +88,7 @@ _waitfds = {}
def _debug(s): def _debug(s):
if 0: if 0:
sys.stderr.write('jwack#%d: %s' % (os.getpid(), s)) sys.stderr.write('job#%d: %s' % (os.getpid(), s))
def _create_tokens(n): def _create_tokens(n):