Преглед изворни кода

fix(exproto): fix badarg is_process_alive/1

JianBo He пре 4 година
родитељ
комит
473e600b53
1 измењених фајлова са 7 додато и 5 уклоњено
  1. 7 5
      apps/emqx_exproto/src/emqx_exproto_gsvr.erl

+ 7 - 5
apps/emqx_exproto/src/emqx_exproto_gsvr.erl

@@ -123,12 +123,14 @@ call(ConnStr, Req) ->
             {error, ?RESP_PARAMS_TYPE_ERROR,
                     <<"The conn type error">>};
         Pid when is_pid(Pid) ->
-            case erlang:is_process_alive(Pid) of
-                true ->
-                    emqx_exproto_conn:call(Pid, Req);
-                false ->
+            case catch emqx_exproto_conn:call(Pid, Req) of
+                {'EXIT',{noproc, _}} ->
                     {error, ?RESP_CONN_PROCESS_NOT_ALIVE,
-                            <<"Connection process is not alive">>}
+                            <<"Connection process is not alive">>};
+                {'EXIT',{timeout, _}} ->
+                    {error, ?RESP_UNKNOWN, <<"Connection is not answered">>};
+                Result ->
+                    Result
             end
     end.