anchor.diff:      _ = admin:add_node(Options),
       State;
   
  -% message from comm:init_and_wait_for_valid_pid/0 (no reply needed)
  +on({trigger_gc}, State) ->
  +    %% Periodically garbage collect all processes of the VM.  This
  +    %% helps especially when running several VMs on the same machine.
  +    %% Otherwise the Erlang VM will not release allocated memory and
  +    %% the operating system may start swapping virtual memory,
  +    %% although the Erlang VM could easily reduce its memory footprint
  +    %% and swapping would not be necessary.  With periodic garbage
  +    %% collection, Erlang becomes much more cooperative with other
  +    %% processes running on the same machine.
  +    msg_delay:send_local(10, self(), {trigger_gc}),
  +    %% io:format("Garbage collect all processes~n"),
  +    [garbage_collect(X) || X <- processes()],
  +    State;
  +
  +%% message from comm:init_and_wait_for_valid_pid/0 (no reply needed)
   on({hi}, State) ->
       State.
   
  
positive.code: 
  -spec init(any()) -> state().
  init(_Arg) ->
      [].
  
  -spec on(Message :: message(), State :: state()) -> state().
  
negative.code:     {deregister_dht_node, PidToRemove :: comm:mypid()} |
      {'DOWN', MonitorRef::reference(), process, Owner::comm:erl_local_pid(), Info::any()} |
      {delete_node, SupPid::pid() | atom(), SupId::pid() | term()} |
      {trigger_gc} | %% only internally inside the process
      {hi}.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  