From f36e430a1482ee91d7f8b5ff72477ee6882b876d Mon Sep 17 00:00:00 2001 From: Rickard Green Date: Tue, 28 Jun 2016 17:40:45 +0200 Subject: Ensure correct mbuf_sz value in process structure --- erts/emulator/beam/erl_message.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'erts/emulator/beam/erl_message.c') diff --git a/erts/emulator/beam/erl_message.c b/erts/emulator/beam/erl_message.c index 91e06cde2d..e4c696ae3b 100644 --- a/erts/emulator/beam/erl_message.c +++ b/erts/emulator/beam/erl_message.c @@ -1842,3 +1842,20 @@ void erts_factory_undo(ErtsHeapFactory* factory) factory->heap_frags = NULL; #endif } + +Uint +erts_mbuf_size(Process *p) +{ + Uint sz = 0; + ErlHeapFragment* bp; + ErtsMessage* mp; + + for (bp = p->mbuf; bp; bp = bp->next) + sz += bp->used_size; + + for (mp = p->msg_frag; mp; mp = mp->next) + for (bp = erts_message_to_heap_frag(mp); bp; bp = bp->next) + sz += bp->used_size; + + return sz; +} -- cgit v1.2.3