anchor.diff:      comm:send_local(self(), {shutdown, recon_node_crash}),
       State;
   
  -on({shutdown, Reason}, #rr_recon_state{ ownerLocalPid = Owner,
  +on({shutdown, Reason}, #rr_recon_state{ ownerPid = OwnerL,
                                           ownerMonitor = OwnerMon,
                                           stats = Stats,
                                           initiator = Initiator }) ->
  
positive.code:                 false ->
                      IntParams = [{interval, merkle_tree:get_interval(SyncStruct)}, {reconPid, comm:this()}],
                      comm:send(DestRRPid, 
                                {continue_recon, OwnerPid, SID, 
                                 {continue, merkle_tree, res_shared_interval, IntParams, true}})
              end,
              rr_recon_stats:set(
                [{tree_compareLeft, ?IIF(Initiator, 1, 0)},
                 {tree_size, merkle_tree:size_detail(SyncStruct)}], Stats);
          bloom ->
              comm:send(DestRRPid, {continue_recon, OwnerPid, SID,
                                    {continue, bloom, reconciliation, SyncStruct, true}}),
              comm:send_local(self(), {shutdown, {ok, build_struct}}),
              Stats;
  
negative.code: %% @doc init module
  -spec init(state()) -> state().
  init(State) ->
      Mon = erlang:monitor(process, State#rr_recon_state.ownerPid),
      State#rr_recon_state{ ownerMonitor = Mon }.
  
  -spec start(rrepair:session_id() | null) -> {ok, pid()}.
  