Index: tools/findit/findit_for_crash.py |
diff --git a/tools/findit/findit_for_crash.py b/tools/findit/findit_for_crash.py |
index 09e2671bb82d958a1c767180665158dcac8cab9f..e0f88eacdf17e8fd7336c1c5a36f137bb81b43fe 100644 |
--- a/tools/findit/findit_for_crash.py |
+++ b/tools/findit/findit_for_crash.py |
@@ -3,7 +3,7 @@ |
# found in the LICENSE file. |
import os |
-from threading import Lock, Thread |
+from threading import Lock |
import blame |
from common import utils |
@@ -139,8 +139,8 @@ def FindMatch(revisions_info_map, file_to_revision_info, file_to_crash_info, |
Matches, a set of match objects. |
""" |
matches = match_set.MatchSet(codereview_api_url) |
- threads = [] |
+ tasks = [] |
# Iterate through the crashed files in the stacktrace. |
for crashed_file_path in file_to_crash_info: |
# Ignore header file. |
@@ -172,17 +172,15 @@ def FindMatch(revisions_info_map, file_to_revision_info, file_to_crash_info, |
revision = revisions_info_map[cl] |
- match_thread = Thread( |
- target=GenerateMatchEntry, |
- args=[matches, revision, cl, changed_file_path, functions, |
- component_path, component_name, crashed_line_numbers, |
- stack_frame_nums, file_change_type, |
- repository_parser]) |
- threads.append(match_thread) |
- match_thread.start() |
+ tasks.append({ |
+ 'function': GenerateMatchEntry, |
+ 'args':[matches, revision, cl, changed_file_path, functions, |
+ component_path, component_name, crashed_line_numbers, |
+ stack_frame_nums, file_change_type, |
+ repository_parser]}) |
- for match_thread in threads: |
- match_thread.join() |
+ # Run all the tasks. |
+ crash_utils.RunTasks(tasks) |
matches.RemoveRevertedCLs() |
@@ -241,8 +239,7 @@ def FindMatchForCallstack( |
components) |
callstack_priority = callstack.priority |
- # Iterate through all components and create new thread for each component. |
- threads = [] |
+ # Iterate through all components. |
for component_path in component_dict: |
# If the component to consider in this callstack is not in the parsed list |
# of components, ignore this one. |
@@ -251,15 +248,8 @@ def FindMatchForCallstack( |
changelog = component_to_changelog_map[component_path] |
file_to_crash_info = component_dict.GetFileDict(component_path) |
- t = Thread( |
- target=FindMatchForComponent, |
- args=[component_path, file_to_crash_info, changelog, |
- callstack_priority, results, results_lock]) |
- threads.append(t) |
- t.start() |
- |
- for t in threads: |
- t.join() |
+ FindMatchForComponent(component_path, file_to_crash_info, changelog, |
+ callstack_priority, results, results_lock) |
def FindMatchForStacktrace(stacktrace, components, |
@@ -320,18 +310,10 @@ def FindMatchForStacktrace(stacktrace, components, |
revisions, |
file_to_revision_map) |
- # Create separate threads for each of the call stack in the stacktrace. |
- threads = [] |
+ # Analyze each of the call stacks in the stacktrace. |
for callstack in stacktrace.stack_list: |
- t = Thread( |
- target=FindMatchForCallstack, |
- args=[callstack, components, component_to_changelog_map, |
- results, results_lock]) |
- threads.append(t) |
- t.start() |
- |
- for t in threads: |
- t.join() |
+ FindMatchForCallstack(callstack, components, component_to_changelog_map, |
+ results, results_lock) |
return results |