Feng Lee 9 лет назад
Родитель
Сommit
73847b96fc
4 измененных файлов с 8 добавлено и 3 удалено
  1. 2 0
      include/emqttd_internal.hrl
  2. 2 1
      src/emqttd_client.erl
  3. 1 1
      src/emqttd_session.erl
  4. 3 1
      src/emqttd_ws_client.erl

+ 2 - 0
include/emqttd_internal.hrl

@@ -58,3 +58,5 @@
             false-> (FalseFun)
         end)).
 
+-define(FULLSWEEP_OPTS, [{fullsweep_after, 10}]).
+

+ 2 - 1
src/emqttd_client.erl

@@ -66,7 +66,8 @@
                         [esockd_net:format(State#client_state.peername) | Args])).
 
 start_link(Conn, Env) ->
-    {ok, proc_lib:spawn_link(?MODULE, init, [[Conn, Env]], [{fullsweep_after, 10}])}.
+    {ok, proc_lib:spawn_opt(?MODULE, init, [[Conn, Env]],
+                            [{spawn_opt, [link | ?FULLSWEEP_OPTS]}])}.
 
 info(CPid) ->
     gen_server2:call(CPid, info).

+ 1 - 1
src/emqttd_session.erl

@@ -171,7 +171,7 @@
 -spec(start_link(boolean(), {mqtt_client_id(), mqtt_username()}, pid()) -> {ok, pid()} | {error, any()}).
 start_link(CleanSess, {ClientId, Username}, ClientPid) ->
     gen_server2:start_link(?MODULE, [CleanSess, {ClientId, Username}, ClientPid],
-                           [{fullsweep_after, 10}]). %% Tune GC.
+                           [{spawn_opt, ?FULLSWEEP_OPTS}]). %% Tune GC.
 
 %%--------------------------------------------------------------------
 %% PubSub API

+ 3 - 1
src/emqttd_ws_client.erl

@@ -26,6 +26,8 @@
 
 -include("emqttd_protocol.hrl").
 
+-include("emqttd_internal.hrl").
+
 -import(proplists, [get_value/3]).
 
 %% API Exports
@@ -60,7 +62,7 @@
 %% @doc Start WebSocket Client.
 start_link(Env, WsPid, Req, ReplyChannel) ->
     gen_server2:start_link(?MODULE, [Env, WsPid, Req, ReplyChannel],
-                           [{fullsweep_after, 10}]). %% Tune GC.
+                           [{spawn_opt, ?FULLSWEEP_OPTS}]). %% Tune GC.
 
 info(CPid) ->
     gen_server2:call(CPid, info).