diff --git a/src/emqttd_client.erl b/src/emqttd_client.erl index f7571efb9..e3e68b8e4 100644 --- a/src/emqttd_client.erl +++ b/src/emqttd_client.erl @@ -149,7 +149,7 @@ prioritise_info(Msg, _Len, _State) -> case Msg of {redeliver, _} -> 5; _ -> 0 end. handle_pre_hibernate(State) -> - {hibernate, emit_stats(emqttd_gc:reset_conn_gc_count(State))}. + {hibernate, emqttd_gc:reset_conn_gc_count(#client_state.force_gc_count, emit_stats(State))}. handle_call(info, From, State = #client_state{proto_state = ProtoState}) -> ProtoInfo = emqttd_protocol:info(ProtoState), diff --git a/src/emqttd_session.erl b/src/emqttd_session.erl index 1ee57b575..288565a3a 100644 --- a/src/emqttd_session.erl +++ b/src/emqttd_session.erl @@ -341,7 +341,7 @@ prioritise_info(Msg, _Len, _State) -> end. handle_pre_hibernate(State) -> - {hibernate, emit_stats(emqttd_gc:reset_conn_gc_count(State))}. + {hibernate, emqttd_gc:reset_conn_gc_count(#state.force_gc_count, emit_stats(State))}. handle_call({publish, Msg = #mqtt_message{qos = ?QOS_2, pktid = PacketId}}, _From, State = #state{awaiting_rel = AwaitingRel, diff --git a/src/emqttd_ws_client.erl b/src/emqttd_ws_client.erl index 1d181e1bb..bde322dcf 100644 --- a/src/emqttd_ws_client.erl +++ b/src/emqttd_ws_client.erl @@ -112,8 +112,8 @@ prioritise_info(Msg, _Len, _State) -> case Msg of {redeliver, _} -> 5; _ -> 0 end. handle_pre_hibernate(State = #wsclient_state{ws_pid = WsPid}) -> - erlang:garbage_collect(WsPid),%%TODO: [{async, RequestId}]?? - {hibernate, emqttd_gc:reset_conn_gc_count(emit_stats(State))}. + erlang:garbage_collect(WsPid), + {hibernate, emqttd_gc:reset_conn_gc_count(#wsclient_state.force_gc_count, emit_stats(State))}. handle_call(info, From, State = #wsclient_state{peername = Peername, proto_state = ProtoState}) ->