anchor.diff:  	    "~n   Pid:        ~p"
   	    "~n   UserId:     ~p"
   	    "~n   TargetName: ~p"
  -	    "~n   CtxName:    ~p"
   	    "~n   Oids:       ~p"
  -	    "~n   Expire:     ~p",
  -	    [Pid, UserId, TargetName, CtxName, Oids, Expire]),
  +	    "~n   SendOpts:   ~p",
  +	    [Pid, UserId, TargetName, Oids, SendOpts]),
       case agent_data(TargetName, SendOpts) of
   	{ok, RegType, Addr, Port, Vsn, MsgData} ->
   	    ?vtrace("handle_async_get -> send a ~p message", [Vsn]),
  +	    Extra  = ?GET_EXTRA(SendOpts), 
   	    ReqId  = send_get_request(Oids, Vsn, MsgData, Addr, Port, 
  -				      ExtraInfo, State),
  +				      Extra, State),
   	    ?vdebug("handle_async_get -> ReqId: ~p", [ReqId]),
  +	    Expire = ?ASYNC_GET_TIMEOUT(SendOpts), 
   	    Req    = #request{id       = ReqId,
   			      user_id  = UserId, 
   			      reg_type = RegType, 
  
positive.code: %% -- [async] get --
  
  async_get2(UserId, TargetName, Oids) ->
      async_get2(UserId, TargetName, Oids, []) ->
  async_get2(UserId, TargetName, Oids, SendOpts) ->
      call({async_get, self(), UserId, TargetName, Oids, SendOpts}).
  
  
negative.code: 
  async_set(UserId, TargetName, CtxName, VarsAndVals) ->
      async_set(UserId, TargetName, CtxName, VarsAndVals, 
  	      ?DEFAULT_ASYNC_SET_TIMEOUT, ?DEFAULT_EXTRA_INFO).
  
  async_set(UserId, TargetName, CtxName, VarsAndVals, Expire) ->
      async_set(UserId, TargetName, CtxName, VarsAndVals, 
  	      Expire, ?DEFAULT_EXTRA_INFO).
  
  async_set(UserId, TargetName, CtxName, VarsAndVals, Expire, ExtraInfo) 
    when (is_list(TargetName) andalso 
  	is_list(CtxName) andalso 
  	is_list(VarsAndVals) andalso 
  	is_integer(Expire) andalso (Expire >= 0)) ->
      SendOpts = [{context, CtxName}, {expire, Expire}, {extra, ExtraInfo}],
      async_set2(UserId, TargetName, VarsAndVals, SendOpts).
  
  
  cancel_async_request(UserId, ReqId) ->
  