From 6e10e6f0123b086ab494aba38e166b63fdb6f99f Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Mon, 31 Aug 2020 17:42:43 +0200 Subject: [PATCH] Use the right queue for each response type --- td/telegram/Client.cpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/td/telegram/Client.cpp b/td/telegram/Client.cpp index 5f6b5b7ae..c7e023f27 100644 --- a/td/telegram/Client.cpp +++ b/td/telegram/Client.cpp @@ -288,19 +288,23 @@ class TdReceiver { std::atomic receive_lock_{false}; MultiClient::Response receive_unlocked(double timeout, bool include_responses, bool include_updates) { - if (output_responses_queue_ready_cnt_ == 0) { - output_responses_queue_ready_cnt_ = output_responses_queue_->reader_wait_nonblock(); + if (include_responses) { + if (output_responses_queue_ready_cnt_ == 0) { + output_responses_queue_ready_cnt_ = output_responses_queue_->reader_wait_nonblock(); + } + if (output_responses_queue_ready_cnt_ > 0) { + output_responses_queue_ready_cnt_--; + return output_responses_queue_->reader_get_unsafe(); + } } - if (output_responses_queue_ready_cnt_ > 0) { - output_responses_queue_ready_cnt_--; - return output_responses_queue_->reader_get_unsafe(); - } - if (output_updates_queue_ready_cnt_ == 0) { - output_updates_queue_ready_cnt_ = output_updates_queue_->reader_wait_nonblock(); - } - if (output_updates_queue_ready_cnt_ > 0) { - output_updates_queue_ready_cnt_--; - return output_updates_queue_->reader_get_unsafe(); + if (include_updates) { + if (output_updates_queue_ready_cnt_ == 0) { + output_updates_queue_ready_cnt_ = output_updates_queue_->reader_wait_nonblock(); + } + if (output_updates_queue_ready_cnt_ > 0) { + output_updates_queue_ready_cnt_--; + return output_updates_queue_->reader_get_unsafe(); + } } if (timeout != 0) { if (include_responses && !include_updates) {