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);
}
}
}