mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-22 16:20:52 +01:00
mod_mam_mnesia: Force garbage collection
The VM fails to collect the garbage generated during MAM lookups automatically, so mod_mam_mnesia's memory usage easily goes up to several gigabytes if we don't force garbage collection.
This commit is contained in:
parent
10d4c16a97
commit
8be1d49961
@ -138,12 +138,15 @@ select(_LServer, JidRequestor,
|
||||
SortedMsgs = lists:keysort(#archive_msg.timestamp, Msgs),
|
||||
{FilteredMsgs, IsComplete} = filter_by_rsm(SortedMsgs, RSM),
|
||||
Count = length(Msgs),
|
||||
{lists:map(
|
||||
fun(Msg) ->
|
||||
{Msg#archive_msg.id,
|
||||
jlib:binary_to_integer(Msg#archive_msg.id),
|
||||
mod_mam:msg_to_el(Msg, MsgType, JidRequestor, JidArchive)}
|
||||
end, FilteredMsgs), IsComplete, Count}.
|
||||
Result = {lists:map(
|
||||
fun(Msg) ->
|
||||
{Msg#archive_msg.id,
|
||||
jlib:binary_to_integer(Msg#archive_msg.id),
|
||||
mod_mam:msg_to_el(Msg, MsgType, JidRequestor,
|
||||
JidArchive)}
|
||||
end, FilteredMsgs), IsComplete, Count},
|
||||
erlang:garbage_collect(),
|
||||
Result.
|
||||
|
||||
%%%===================================================================
|
||||
%%% Internal functions
|
||||
|
Loading…
Reference in New Issue
Block a user