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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。