gen_server已启动?

| 有没有办法告诉gen_server:“主管已经初始化了所有gen_server,现在您可以发送消息了”。 我有一个工人gen_server,他的工作是在他的监督树中设置其他gen_server的状态。如果我刚开始在配置服务器的init函数中发送消息,则有时会得到{noproc,_}。我想这意味着配置服务器速度很快:他在主管有足够的时间启动所有工作程序之前发送了消息。我通过将timer:sleep(500)放在config_server:init()中来解决此问题,这可以确保所有gen_server有足够的时间进行初始化,但这似乎是一个不明智的解决方案。 有适当的方法来做到这一点吗?     
已邀请:
        从
init
返回超时为
0
的元组。然后在返回后立即调用
handle_info(timeout, State)
。在
handle_info
中进行一些呼叫,直到主管完成初始化后才会返回(例如ѭ4return)。     
        
info(PlayerId) ->
Pid = case global:whereis_name(util:getRegName({?MODULE, PlayerId})) of
    P when is_pid(P) ->
        P;
    _ ->
        {ok, P} = player_sup:start_child(PlayerId),
        P
end,
gen_server:call(Pid, info).
这是我处理这个问题的情况。该工作进程仅在被请求时才被触发。     
        在功能
init()
中调用
gen_server:cast(init, State)
。消息\“ init \”将在消息队列中排在第一位     

要回复问题请先登录注册