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:
parent
6e96395d48
commit
65cf1c9854
4 changed files with 18 additions and 18 deletions
|
|
@ -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))
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
Loading…
Add table
Add a link
Reference in a new issue