当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang atomic_load(Modules)用法及代码示例


atomic_load(Modules) -> ok | {error, [{Module, What}]}
OTP 19.0
类型:
Modules = [Module | {Module, Filename, Binary}]
Module = module()
Filename = file:filename()
Binary = binary()
What = 
    badfile | nofile | on_load_not_allowed | duplicated |
    not_purged | sticky_directory | pending_on_load

尝试以原子方式加载列表 Modules 中的所有模块。这意味着或者同时加载所有模块,或者如果任何模块出现问题则不会加载任何模块。

由于以下原因之一,加载可能会失败:


badfile

目标代码的格式不正确或目标代码中的模块名称不是预期的模块名称。


nofile

不存在带有目标代码的文件。


on_load_not_allowed

一个模块包含一个-on_load函数.


duplicated

一个模块多次包含在 Modules 中。


not_purged

无法加载目标代码,因为旧版本的代码已存在。


sticky_directory

目标代码驻留在粘性目录中。


pending_on_load

先前加载的模块包含从未完成的 -on_load 函数。

如果在更改代码时最小化应用程序不活动的时间很重要,请使用prepare_loading/1finish_loading/1代替atomic_load/1。这是一个例子:

{ok,Prepared} = code:prepare_loading(Modules),
%% Put the application into an inactive state or do any
%% other preparation needed before changing the code.
ok = code:finish_loading(Prepared),
%% Resume the application.

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 atomic_load(Modules) -> ok | {error, [{Module, What}]}。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。