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/1和finish_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 atom_to_list用法及代码示例
- erlang atom_to_binary用法及代码示例
- erlang atom_to_binary(Atom, Encoding)用法及代码示例
- erlang atom_to_list(Atom)用法及代码示例
- erlang atan用法及代码示例
- erlang asin用法及代码示例
- erlang acos用法及代码示例
- erlang abs用法及代码示例
- erlang all用法及代码示例
- erlang any用法及代码示例
- erlang append用法及代码示例
- erlang absname(Filename)用法及代码示例
- erlang abs(Float)用法及代码示例
- erlang adler32(OldAdler, Data)用法及代码示例
- erlang adler32_combine(FirstAdler, SecondAdler, SecondSize)用法及代码示例
- erlang alias()用法及代码示例
- erlang append_element(Tuple1, Term)用法及代码示例
- erlang apply(Module, Function, Args)用法及代码示例
- erlang allocations(Options)用法及代码示例
- erlang all(Pred, Q :: queue(Item))用法及代码示例
- erlang any(Pred, Q :: queue(Item))用法及代码示例
- erlang append(Key, Value, Orddict1)用法及代码示例
- erlang append_list(Key, ValList, Orddict1)用法及代码示例
- erlang add_handlers(HandlerConfig)用法及代码示例
- erlang adler32(Z, PrevAdler, Data)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 atomic_load(Modules) -> ok | {error, [{Module, What}]}。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。