diff options
author | Hans Bolinder <[email protected]> | 2017-01-20 13:04:31 +0100 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2017-02-03 08:58:01 +0100 |
commit | 7e0a7a58eb3557bd0d5d372a3793119a5e9ffe61 (patch) | |
tree | 48a5ba02fc5c3bbe0da1ffe49a9d9c724cffb9f9 /lib/dialyzer/src/dialyzer_coordinator.erl | |
parent | da2a7ff4d340db6d139c3c6abdcfa978dcadb4c2 (diff) | |
download | otp-7e0a7a58eb3557bd0d5d372a3793119a5e9ffe61.tar.gz otp-7e0a7a58eb3557bd0d5d372a3793119a5e9ffe61.tar.bz2 otp-7e0a7a58eb3557bd0d5d372a3793119a5e9ffe61.zip |
dialyzer: Remove code for non-started workers
Since SCCs and modules are now topologically sorted (relative the
active graph), we can safely assume that workers have been started.
Diffstat (limited to 'lib/dialyzer/src/dialyzer_coordinator.erl')
-rw-r--r-- | lib/dialyzer/src/dialyzer_coordinator.erl | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/dialyzer/src/dialyzer_coordinator.erl b/lib/dialyzer/src/dialyzer_coordinator.erl index 99f95a4dca..de239f5c93 100644 --- a/lib/dialyzer/src/dialyzer_coordinator.erl +++ b/lib/dialyzer/src/dialyzer_coordinator.erl @@ -170,18 +170,16 @@ update_result(Mode, InitData, Job, Data, Result) -> end. -spec sccs_to_pids([scc() | module()], coordinator()) -> - {[dialyzer_worker:worker()], [scc() | module()]}. + [dialyzer_worker:worker()]. sccs_to_pids(SCCs, {_Collector, _Regulator, SCCtoPID}) -> Fold = - fun(SCC, {Pids, Unknown}) -> - try ets:lookup_element(SCCtoPID, SCC, 2) of - Result -> {[Result|Pids], Unknown} - catch - _:_ -> {Pids, [SCC|Unknown]} - end + fun(SCC, Pids) -> + %% The SCCs that SCC depends on have always been started. + Result = ets:lookup_element(SCCtoPID, SCC, 2), + [Result|Pids] end, - lists:foldl(Fold, {[], []}, SCCs). + lists:foldl(Fold, [], SCCs). -spec job_done(job(), job_result(), coordinator()) -> ok. |