redo-log: sometimes print a (resumed) line after ending a level of recursion.

If A calls B, and B produces stderr output, and then A wants to produce
output, the resulting log would be confusing: we'd see 'redo A' and
then 'redo B' and then B's output, but no indicator that B has ended
and we're back in A.  Now we show 'redo A (resumed)' before A's output.

If B didn't produce any output, or A doesn't produce any output, we
don't bother with the (resumed) line.  This seems nice, as it doesn't
clutter the log when there is no ambiguity anyway.
This commit is contained in:
Avery Pennarun 2019-03-02 19:08:47 -05:00
commit cead02bd21
2 changed files with 23 additions and 3 deletions

View file

@ -85,6 +85,8 @@ class PrettyLog(object):
elif env.v.VERBOSE or env.v.XTRACE or env.v.DEBUG:
self._pretty(pid, GREEN, '%s (done)' % name)
self.file.write('\n')
elif kind == 'resumed':
self._pretty(pid, GREEN, '%s (resumed)' % text)
elif kind == 'locked':
if env.v.DEBUG_LOCKS:
self._pretty(pid, GREEN, '%s (locked...)' % text)