mirror of
https://github.com/ton-blockchain/ton
synced 2025-02-14 12:12:21 +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,
|
void receive_message(adnl::AdnlNodeIdShort source, adnl::AdnlNodeIdShort local_id, TransferId transfer_id,
|
||||||
td::BufferSlice data);
|
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 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;
|
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(
|
auto P = td::PromiseCreator::lambda(
|
||||||
[SelfId = actor_id(this), source, local_id, transfer_id = part.transfer_id_](td::Result<td::BufferSlice> R) {
|
[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()) {
|
if (R.is_error()) {
|
||||||
VLOG(RLDP_INFO) << "failed to receive: " << R.move_as_error();
|
VLOG(RLDP_INFO) << "failed to receive: " << R.move_as_error();
|
||||||
return;
|
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());
|
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 ";
|
VLOG(RLDP_DEBUG) << "rldp: completed transfer " << transfer_id << "; " << senders_.size() << " out transfer pending ";
|
||||||
}
|
}
|
||||||
|
|
||||||
void RldpIn::in_transfer_completed(TransferId transfer_id) {
|
void RldpIn::in_transfer_completed(TransferId transfer_id, bool success) {
|
||||||
if (lru_set_.count(transfer_id) == 1) {
|
receivers_.erase(transfer_id);
|
||||||
|
if (!success || lru_set_.count(transfer_id) == 1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while (lru_size_ >= lru_size()) {
|
while (lru_size_ >= lru_size()) {
|
||||||
|
|
Loading…
Reference in a new issue