Skip to content

Commit

Permalink
[clang-tidy] run-clang-tidy.py - add synchronisation to the output
Browse files Browse the repository at this point in the history
Differential Revision: https://reviews.llvm.org/D49851

llvm-svn: 339427
  • Loading branch information
abpostelnicu committed Aug 10, 2018
1 parent 0a75766 commit bebcd6f
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,18 +153,23 @@ def apply_fixes(args, tmpdir):
subprocess.call(invocation)


def run_tidy(args, tmpdir, build_path, queue, failed_files):
def run_tidy(args, tmpdir, build_path, queue, lock, failed_files):
"""Takes filenames out of queue and runs clang-tidy on them."""
while True:
name = queue.get()
invocation = get_tidy_invocation(name, args.clang_tidy_binary, args.checks,
tmpdir, build_path, args.header_filter,
args.extra_arg, args.extra_arg_before,
args.quiet, args.config)
sys.stdout.write(' '.join(invocation) + '\n')
return_code = subprocess.call(invocation)
if return_code != 0:

proc = subprocess.Popen(invocation, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err = proc.communicate()
if proc.returncode != 0:
failed_files.append(name)
with lock:
sys.stdout.write(' '.join(invocation) + '\n' + output + '\n')
if err > 0:
sys.stderr.write(err + '\n')
queue.task_done()


Expand Down Expand Up @@ -263,9 +268,10 @@ def main():
task_queue = queue.Queue(max_task)
# List of files with a non-zero return code.
failed_files = []
lock = threading.Lock()
for _ in range(max_task):
t = threading.Thread(target=run_tidy,
args=(args, tmpdir, build_path, task_queue, failed_files))
args=(args, tmpdir, build_path, task_queue, lock, failed_files))
t.daemon = True
t.start()

Expand Down

0 comments on commit bebcd6f

Please sign in to comment.