summaryrefslogtreecommitdiff
path: root/src/rebar_dir.erl
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2019-06-02 13:03:49 -0400
committerFred Hebert <mononcqc@ferd.ca>2019-06-02 13:03:49 -0400
commita399fd0b3377b06a819733377a0b890d225ced48 (patch)
treed4ce4c1070cddc93fb1141a39debfcaed9802537 /src/rebar_dir.erl
parent2a38e6bdae6f93d746921cf45e624fc9a8c48d8c (diff)
Gracious loading of unloaded but blacklisted mods
rebar3's shell allows people to set applications as blacklisted to prevent them from being reloaded because that can cause crashes. However, as part of its normal operations, rebar_paths unloads all modules that are currently not "owned" by at least one process, considering them safe to do so. These two behaviours, put together, lead to an odd thing where some modules are suddenly unloaded and not in path, and that can be confusing. This calls for a unification of both features. We could decide to be pushing the complexity of rebar3's shell into rebar_path so it knows of blacklists, but this would be a bad idea because rebar_agent already owns all the damn hack. So instead this fix adds an optional call within rebar_agent's blacklisted applications handling that calls `code:ensure_loaded/1` on their modules. This avoids forcing any code change that would cause a crash, but reinstates unloaded paths that could be confusing. Addresses some comments in #2013
Diffstat (limited to 'src/rebar_dir.erl')
0 files changed, 0 insertions, 0 deletions