[erlang-questions] gen_server state is not released for gc
Björn-Egil Dahlberg
egil@REDACTED
Fri Jan 13 18:50:00 CET 2012
On 2012-01-13 18:33, Volodymyr Kyrychenko wrote:
> Hi. Here is simple gen_server that holds binary in its state and never
> releases it.
>
> http://ideone.com/U4f9X
>
> 1> X = myserver:start_link("/tmp/1.cache").
> {ok,<0.33.0>}
> 2> myserver:info().
> {binary,[{140408119021616,401681797,2}]}
> 3> myserver:release().
> ok
> 4> myserver:info().
> {binary,[{140408119021616,401681797,2}]}
> 7> memory(binary).
> 402043632
>
> How come there are 2 references on it and what to do to free this binary?
it is not gc:ed yet.
Try erlang:garbage_collect/0 info:
handle_call(info, _From, State) ->
erlang:garbage_collect(),
{reply, process_info(self(), binary), State};
// Björn-Egil
More information about the erlang-questions
mailing list