MCPcopy Index your code
hub / github.com/Tencent/CodeAnalysis / ThreadRunner

Class ThreadRunner

client/tool/cpplint.py:145–169  ·  view source on GitHub ↗

多线程执行类

Source from the content-addressed store, hash-verified

143
144
145class ThreadRunner(object):
146 """多线程执行类"""
147
148 def __init__(self, cmd_args, regex_client, source_dir, rules):
149 self.cmd_args = cmd_args
150 self.regex_client = regex_client
151 self.source_dir = source_dir
152 self.rules = rules
153 self.issues = []
154 self.mutex = threading.Lock() # 线程锁,访问全局变量时需要上锁
155
156 def __scan_file_callback__(self, file_path):
157 file_result = CpplintRunner().run_cpplint_on_file(
158 file_path, self.cmd_args, self.regex_client, self.source_dir, self.rules
159 )
160 self.mutex.acquire() # 上锁
161 self.issues.extend(file_result)
162 self.mutex.release() # 解锁
163
164 def run(self, file_paths):
165 callback_queue = CallbackQueue(min_threads=20, max_threads=1000)
166 for path in file_paths:
167 callback_queue.append(self.__scan_file_callback__, path)
168 callback_queue.wait_for_all_callbacks_to_be_execute_and_destroy()
169 return self.issues
170
171
172class Cpplint(CodeLintModel):

Callers 1

analyzeMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected