Notice sooner when make has "helpfully" closed its job control file descriptors.
This commit is contained in:
parent
662f53896a
commit
3803da525c
2 changed files with 10 additions and 2 deletions
2
Makefile
2
Makefile
|
|
@ -1,7 +1,7 @@
|
|||
all:
|
||||
|
||||
%: FORCE
|
||||
./redo $@
|
||||
+./redo $@
|
||||
|
||||
.PHONY: FORCE
|
||||
|
||||
|
|
|
|||
10
jwack.py
10
jwack.py
|
|
@ -65,6 +65,14 @@ def setup(maxjobs):
|
|||
b = _atoi(b)
|
||||
if a <= 0 or b <= 0:
|
||||
raise ValueError('invalid --jobserver-fds: %r' % arg)
|
||||
try:
|
||||
fcntl.fcntl(a, fcntl.F_GETFL)
|
||||
fcntl.fcntl(b, fcntl.F_GETFL)
|
||||
except IOError, e:
|
||||
if e.errno == errno.EBADF:
|
||||
raise ValueError('broken --jobserver-fds from make; prefix your Makefile rule with a "+"')
|
||||
else:
|
||||
raise
|
||||
_fds = (a,b)
|
||||
if maxjobs and not _fds:
|
||||
# need to start a new server
|
||||
|
|
@ -81,7 +89,7 @@ def wait(want_token):
|
|||
if _fds and want_token:
|
||||
rfds.append(_fds[0])
|
||||
r,w,x = select.select(rfds, [], [])
|
||||
#print 'readable: %r' % r
|
||||
_debug('_fds=%r; wfds=%r; readable: %r\n' % (_fds, _waitfds, r))
|
||||
for fd in r:
|
||||
if _fds and fd == _fds[0]:
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue