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


erlang init_ack(Ret)用法及代碼示例


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.org大神的英文原創作品 init_ack(Ret) -> ok。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。