當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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}]}。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。