From 47c67479b3f8d84e1be0a7977c3cc4106e52cf1a Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 18 Dec 2018 10:43:28 +0300 Subject: [PATCH] Fix race in on_alarm_timeout. GitOrigin-RevId: 0a940296688cf4b743c85fa4513504483cd357df --- td/telegram/Td.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index f12deed1..d1f220cd 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -3062,9 +3062,13 @@ void Td::on_alarm_timeout(int64 alarm_id) { } return; } + if (close_flag_ >= 2) { + // pending_alarms_ was already cleared + return; + } auto it = pending_alarms_.find(alarm_id); - CHECK(it != pending_alarms_.end()) << alarm_id << ' ' << close_flag_ << ' ' << G()->close_flag(); + CHECK(it != pending_alarms_.end()); uint64 request_id = it->second; pending_alarms_.erase(alarm_id); send_result(request_id, make_tl_object());