From 9225edd757c6def9723d25cb89391e9268106afd Mon Sep 17 00:00:00 2001 From: Arseny Smirnov Date: Thu, 13 Sep 2018 14:55:55 +0300 Subject: [PATCH] Fix Client.cpp GitOrigin-RevId: bf4de7283b1d5a4b230c20cae1f7b0d2bb89c919 --- td/telegram/Client.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/td/telegram/Client.cpp b/td/telegram/Client.cpp index 6b45d8b8..274cd9a6 100644 --- a/td/telegram/Client.cpp +++ b/td/telegram/Client.cpp @@ -225,12 +225,16 @@ class Client::Impl final { ~Impl() { input_queue_->writer_put({0, nullptr}); scheduler_thread_.join(); +#if !TD_WINDOWS auto &event_fd = output_queue_->reader_get_event_fd(); poll_.unsubscribe(event_fd.get_poll_info().get_pollable_fd_ref()); +#endif } private: +#if !TD_WINDOWS Poll poll_; +#endif std::shared_ptr input_queue_; std::shared_ptr output_queue_; std::shared_ptr scheduler_; @@ -254,9 +258,11 @@ class Client::Impl final { scheduler->finish(); }); +#if !TD_WINDOWS poll_.init(); auto &event_fd = output_queue_->reader_get_event_fd(); poll_.subscribe(event_fd.get_poll_info().extract_pollable_fd(nullptr), PollFlags::Read()); +#endif } Response receive_unlocked(double timeout) { @@ -268,7 +274,11 @@ class Client::Impl final { return output_queue_->reader_get_unsafe(); } if (timeout != 0) { +#if TD_WINDOWS + output_queue_->reader_get_event_fd().wait(static_cast(timeout * 1000)); +#else poll_.run(static_cast(timeout * 1000)); +#endif return receive_unlocked(0); } return {0, nullptr};