mirror of
				https://github.com/ton-blockchain/ton
				synced 2025-03-09 15:40:10 +00:00 
			
		
		
		
	Erase finished transfer_id from receivers (#535)
This commit is contained in:
		
							parent
							
								
									c7f06abfbc
								
							
						
					
					
						commit
						2d722c3431
					
				
					 2 changed files with 5 additions and 4 deletions
				
			
		|  | @ -96,7 +96,7 @@ class RldpIn : public RldpImpl { | |||
|   void receive_message(adnl::AdnlNodeIdShort source, adnl::AdnlNodeIdShort local_id, TransferId transfer_id, | ||||
|                        td::BufferSlice data); | ||||
| 
 | ||||
|   void in_transfer_completed(TransferId transfer_id); | ||||
|   void in_transfer_completed(TransferId transfer_id, bool success); | ||||
| 
 | ||||
|   void add_id(adnl::AdnlNodeIdShort local_id) override; | ||||
|   void get_conn_ip_str(adnl::AdnlNodeIdShort l_id, adnl::AdnlNodeIdShort p_id, td::Promise<td::string> promise) override; | ||||
|  |  | |||
|  | @ -134,11 +134,11 @@ void RldpIn::process_message_part(adnl::AdnlNodeIdShort source, adnl::AdnlNodeId | |||
|     } | ||||
|     auto P = td::PromiseCreator::lambda( | ||||
|         [SelfId = actor_id(this), source, local_id, transfer_id = part.transfer_id_](td::Result<td::BufferSlice> R) { | ||||
|           td::actor::send_closure(SelfId, &RldpIn::in_transfer_completed, transfer_id, R.is_ok()); | ||||
|           if (R.is_error()) { | ||||
|             VLOG(RLDP_INFO) << "failed to receive: " << R.move_as_error(); | ||||
|             return; | ||||
|           } | ||||
|           td::actor::send_closure(SelfId, &RldpIn::in_transfer_completed, transfer_id); | ||||
|           td::actor::send_closure(SelfId, &RldpIn::receive_message, source, local_id, transfer_id, R.move_as_ok()); | ||||
|         }); | ||||
| 
 | ||||
|  | @ -228,8 +228,9 @@ void RldpIn::transfer_completed(TransferId transfer_id) { | |||
|   VLOG(RLDP_DEBUG) << "rldp: completed transfer " << transfer_id << "; " << senders_.size() << " out transfer pending "; | ||||
| } | ||||
| 
 | ||||
| void RldpIn::in_transfer_completed(TransferId transfer_id) { | ||||
|   if (lru_set_.count(transfer_id) == 1) { | ||||
| void RldpIn::in_transfer_completed(TransferId transfer_id, bool success) { | ||||
|   receivers_.erase(transfer_id); | ||||
|   if (!success || lru_set_.count(transfer_id) == 1) { | ||||
|     return; | ||||
|   } | ||||
|   while (lru_size_ >= lru_size()) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue