anchor.diff:          %% actual parent of our process
           {'EXIT', _, Reason} ->
               terminate_now(Reason, [Child | ChildAsyncs]);
  +        {'$async_req', From, {initiate_adoption, Controller, Executor}} ->
  +            handle_initiate_adoption(Controller, Executor, From),
  +            async_loop_wait_result(Type, Child, Reply, ChildAsyncs);
           {'$async_req', From, {register_child_async, Pid}} ->
               reply(From, ok),
               async_loop_wait_result(Type, Child, Reply, [Pid | ChildAsyncs]);
  
positive.code:             exit(Reason);
          {'$async_req', From, get_result} ->
              handle_get_result(From, Result);
          {'$async_req', From, {register_child_async, _Pid}} ->
              %% We don't expect register requests at this point, but it's
              %% possible to write a correct async that has such behavior. If we
  
negative.code: maybe_register_with_parent_async(undefined) ->
      ok;
  maybe_register_with_parent_async(Pid) ->
      register_with_async(Pid).
  
  register_with_async(Pid) ->
      controller = get_role(),
      ok = call(Pid, {register_child_async, self()}).
  
  