anchor.diff:      ok.
   
   
  +%% Exit if Fun hasn't returned within the specified timeout.
  +%% @hidden
  +do_with_timeout(Fun, Timeout) ->
  +    {ok, TRef} = timer:exit_after(Timeout, timeout),
  +    Result = Fun(),
  +    timer:cancel(TRef),
  +    Result.
  +
  +
   %% @doc Make sure we have a disk copy of the schema and all disc tables.
   ensure_schema() ->
       %% Create a new on-disk schema if one doesn't already exist
  
positive.code: %% @doc Make sure table exists and has a copy on this node, creating it or
  %% adding a copy if it does not.
  ensure_table(TableName, Opts) ->
      gen_server:call(?MODULE, {ensure_table, TableName, Opts}, 30000).
  
  
  %% @doc Back up the database in preparation for a node rename.
  
negative.code:                 false ->
                      ?log_info("Creating local copy of ~p",
                                [TableName]),
                      {atomic, ok} =
                          do_with_timeout(
                            fun () ->
                                    mnesia:add_table_copy(TableName, node(),
                                                          disc_copies)
                            end, 5000)
              end
      catch exit:{aborted, {no_exists, _, _}} ->
              ?log_info("Creating table ~p", [TableName]),
              {atomic, ok} =
                  do_with_timeout(
                    fun () ->
                            mnesia:create_table(
                              TableName, Opts ++ [{disc_copies, [node()]}])
                    end, 5000)
      end,
      {reply, ok, State};
  
  