Use only a single diff executor
This commit is contained in:
parent
42cabace47
commit
927bfcd37a
@ -205,9 +205,13 @@ def parse_patch(raw):
|
|||||||
|
|
||||||
class Differ:
|
class Differ:
|
||||||
|
|
||||||
|
diff_executor = None
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.jmap = {}
|
self.jmap = {}
|
||||||
self.jobs = []
|
self.jobs = []
|
||||||
|
if Differ.diff_executor is None:
|
||||||
|
Differ.diff_executor = self.diff_executor = concurrent.futures.ThreadPoolExecutor(max_workers=os.cpu_count())
|
||||||
|
|
||||||
def add_diff(self, file1, file2):
|
def add_diff(self, file1, file2):
|
||||||
self.jmap[file1] = file2
|
self.jmap[file1] = file2
|
||||||
@ -216,7 +220,7 @@ class Differ:
|
|||||||
def __call__(self, context=3):
|
def __call__(self, context=3):
|
||||||
global left_lines, right_lines
|
global left_lines, right_lines
|
||||||
ans = {}
|
ans = {}
|
||||||
with concurrent.futures.ThreadPoolExecutor(max_workers=os.cpu_count()) as executor:
|
executor = Differ.diff_executor
|
||||||
jobs = {executor.submit(run_diff, key, self.jmap[key], context): key for key in self.jobs}
|
jobs = {executor.submit(run_diff, key, self.jmap[key], context): key for key in self.jobs}
|
||||||
for future in concurrent.futures.as_completed(jobs):
|
for future in concurrent.futures.as_completed(jobs):
|
||||||
key = jobs[future]
|
key = jobs[future]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user