似乎 erlang 进程将保持活动状态,直到 5 秒默认超时,即使它已经完成了它的工作。
我有 gen_server 调用向窗口 CLI 发出命令,该命令可以在不到 1 秒的时间内完成,但在我看到操作结果之前进程等待 5 秒。这是怎么回事?是否与超时有关,或者可能是其他原因。
编辑此调用在 5 秒内不执行任何操作(默认超时!)
handle_call({create_app, Path, Name, Args}, _From, State) ->
case filelib:ensure_dir(Path) of
{error, Reason} ->
{reply, Reason, State};
_ ->
file:set_cwd(Path),
Response = os:cmd(string:join(["Rails", Name, Args], " ")),
{reply, Response, State}
end;