Erlang:sys:get_status/1 会干扰超时吗?
Erlang: does sys:get_status/1 interfere with timeout?
假设我有一个 gen_server 进程 P,它包含这样的代码
handle_call(get_a, _From, #state{a = 1}=S) ->
Reply = S#state.a,
{reply, Reply, S, T=1000000};
如果我这样做gen_server:call(P, get_a)
,那么我会得到一个回复,即1
,如果在gen调用之后T
没有消息被发送到P,那么超时会发生。
如果我在 gen 调用后立即执行 sys:get_status(P)
,这会取消超时吗?
正在调用 sys:get_status/1,2
on your gen_server
process does not cancel the timeout. And just for completeness, note that this is true whether or not your gen_server
implements the optional format_status/2
回调。
假设我有一个 gen_server 进程 P,它包含这样的代码
handle_call(get_a, _From, #state{a = 1}=S) ->
Reply = S#state.a,
{reply, Reply, S, T=1000000};
如果我这样做gen_server:call(P, get_a)
,那么我会得到一个回复,即1
,如果在gen调用之后T
没有消息被发送到P,那么超时会发生。
如果我在 gen 调用后立即执行 sys:get_status(P)
,这会取消超时吗?
正在调用 sys:get_status/1,2
on your gen_server
process does not cancel the timeout. And just for completeness, note that this is true whether or not your gen_server
implements the optional format_status/2
回调。