From cf3e035b454b63a8d0c7f7085a49b8b4995a70e4 Mon Sep 17 00:00:00 2001 From: Arsentiy Milchakov Date: Fri, 15 Dec 2017 10:38:41 +0300 Subject: [PATCH] [booking] race on availability cache fix. --- map/booking_filter.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/map/booking_filter.cpp b/map/booking_filter.cpp index 4b6b6b057a..e2e2b63241 100644 --- a/map/booking_filter.cpp +++ b/map/booking_filter.cpp @@ -224,11 +224,15 @@ void Filter::FilterAvailability(search::Results const & results, auto const apiCallback = [cb, hotelToResults, availabilityCache](std::vector hotelIds) mutable { - search::Results results; - std::sort(hotelIds.begin(), hotelIds.end()); - UpdateCache(hotelToResults, hotelIds, *availabilityCache); - FillResults(std::move(hotelToResults), hotelIds, *availabilityCache, results); - cb(results); + GetPlatform().RunTask(Platform::Thread::File, + [cb, hotelToResults, availabilityCache, hotelIds]() mutable + { + search::Results results; + std::sort(hotelIds.begin(), hotelIds.end()); + UpdateCache(hotelToResults, hotelIds, *availabilityCache); + FillResults(std::move(hotelToResults), hotelIds, *availabilityCache, results); + cb(results); + }); }; m_api.GetHotelAvailability(m_currentParams, apiCallback);