Brunet.Messaging.ReqrepManager.HandleReplyAck C# (CSharp) Метод

HandleReplyAck() защищенный Метод

protected HandleReplyAck ( ReqrepType rt, int idnum, MemBlock err_data, ISender ret_path ) : void
rt ReqrepType
idnum int
err_data Brunet.Util.MemBlock
ret_path ISender
Результат void
   protected void HandleReplyAck(ReqrepType rt, int idnum,
                              MemBlock err_data, ISender ret_path) {
     RequestKey rk = new RequestKey(idnum, ret_path);
     lock( _sync ) {
       /**
        * This is not completely safe, but probably fine.  Consider the
        * case where:
        * A -(req)-> B 
        * A timeout but B does get the req
        * A <-(rep)- B
        * A -(req)-> B (these cross in flight)
        * A -(repack)-> B
        *
        * but then the repack passes the req retransmission (out of order
        * delivery)
        *
        * This is unlikely, but we could improve it.
        * @todo improve the reply caching algorithm
        */
       ReplyState rs = (ReplyState)_reply_cache[rk]; 
       if( rs != null ) {
         ReleaseReplyState(rs);
       }
     }
   }