init_ack(Ret) -> ok
init_ack(Parent, Ret) -> ok
類型:
Parent = pid()
Ret = term()
該函數隻能由已啟動的進程使用start[_link|_monitor]/3,4,5
函數。它說Parent
該進程已自行初始化並啟動。
函數init_ack/1
使用先前由所使用的啟動函數存儲的父值。
如果既沒有這個函數也沒有init_fail/2,3
由啟動的進程調用,當啟動的進程退出時,或者當啟動函數time-out(如果使用)通過時,啟動函數返回一個錯誤元組,請參閱start/3,4,5
.
警告
不要使用此函數返回指示進程啟動失敗的錯誤。這樣做時,啟動函數可以在失敗的進程退出之前返回,這可能會阻止新的啟動嘗試成功所需的 VM 資源。使用init_fail/2,3
為了這個目的。
以下示例說明了如何使用此函數和proc_lib:start_link/3
:
-module(my_proc).
-export([start_link/0]).
-export([init/1]).
start_link() ->
proc_lib:start_link(my_proc, init, [self()]).
init(Parent) ->
case do_initialization() of
ok ->
proc_lib:init_ack(Parent, {ok, self()});
{error, Reason} ->
exit(Reason)
end,
loop().
...
相關用法
- erlang init(UserData :: user_data(), AccessMode :: write | read, Fun :: file_op())用法及代碼示例
- erlang init(Q1 :: queue(Item))用法及代碼示例
- erlang insert_element(Index, Tuple1, Term)用法及代碼示例
- erlang integer_to_binary(Integer)用法及代碼示例
- erlang integer_to_binary(Integer, Base)用法及代碼示例
- erlang integer_to_list(Integer)用法及代碼示例
- erlang integer_to_list(Integer, Base)用法及代碼示例
- erlang in(Item, Q1 :: queue(Item))用法及代碼示例
- erlang in_r(Item, Q1 :: queue(Item))用法及代碼示例
- erlang info()用法及代碼示例
- erlang info_lib()用法及代碼示例
- erlang inflateChunk(Z, Data)用法及代碼示例
- erlang inflateSetDictionary(Z, Dictionary)用法及代碼示例
- erlang intersect(Map1, Map2)用法及代碼示例
- erlang intersect_with(Combiner, Map1, Map2)用法及代碼示例
- erlang info_msg(Format)用法及代碼示例
- erlang info_report(Report)用法及代碼示例
- erlang inspect(MP, Item)用法及代碼示例
- erlang intersection_of_family(Family)用法及代碼示例
- erlang inverse(Function1)用法及代碼示例
- erlang inverse_image(BinRel, Set1)用法及代碼示例
- erlang info(QH)用法及代碼示例
- erlang is_file用法及代碼示例
- erlang is_dir用法及代碼示例
- erlang is_atom用法及代碼示例
注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 init_ack(Ret) -> ok。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。