aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dialyzer/src/dialyzer_coordinator.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dialyzer/src/dialyzer_coordinator.erl')
-rw-r--r--lib/dialyzer/src/dialyzer_coordinator.erl14
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/dialyzer/src/dialyzer_coordinator.erl b/lib/dialyzer/src/dialyzer_coordinator.erl
index 93159ce7df..437af69f5a 100644
--- a/lib/dialyzer/src/dialyzer_coordinator.erl
+++ b/lib/dialyzer/src/dialyzer_coordinator.erl
@@ -220,18 +220,20 @@ handle_cast({done, Job, NewData},
#state{mode = Mode,
spawn_count = SpawnCount,
all_spawned = AllSpawned,
- result = OldResult
+ result = OldResult,
+ job_to_pid = JobToPID
} = State) ->
- NewResult =
+ {NewResult, NewJobToPID} =
case Mode of
X when X =:= 'typesig'; X =:= 'dataflow' ->
- ordsets:union(OldResult, NewData);
+ {ordsets:union(OldResult, NewData), dict:erase(Job, JobToPID)};
'compile' ->
- dialyzer_analysis_callgraph:add_to_result(Job, NewData, OldResult);
+ {dialyzer_analysis_callgraph:add_to_result(Job, NewData, OldResult),
+ JobToPID};
'warnings' ->
- NewData ++ OldResult
+ {NewData ++ OldResult, dict:erase(Job, JobToPID)}
end,
- UpdatedState = State#state{result = NewResult},
+ UpdatedState = State#state{result = NewResult, job_to_pid = NewJobToPID},
Action =
case AllSpawned of
false -> reduce;