Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/map
diff options
context:
space:
mode:
authorConstantin Shalnev <c.shalnev@corp.mail.ru>2015-08-07 14:01:43 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:59:45 +0300
commit6b2e9a12d7baf4fca7d31670e050148759b8360b (patch)
treeb14b6f4e8eb31452ae9c0f9bc355b3f469e70518 /map
parent6b79a2d27c7b11eb3ab6a7427a8cd6658826332f (diff)
Added thread checkers for routing
Diffstat (limited to 'map')
-rw-r--r--map/framework.cpp12
-rw-r--r--map/framework.hpp5
2 files changed, 17 insertions, 0 deletions
diff --git a/map/framework.cpp b/map/framework.cpp
index b865277175..592a05f359 100644
--- a/map/framework.cpp
+++ b/map/framework.cpp
@@ -2109,6 +2109,8 @@ void Framework::UpdateSavedDataVersion()
void Framework::BuildRoute(m2::PointD const & destination, uint32_t timeoutSec)
{
+ ASSERT(m_threadChecker.CalledOnOriginalThread(), ("BuildRoute"));
+
shared_ptr<State> const & state = GetLocationState();
if (!state->IsModeHasPosition())
{
@@ -2124,6 +2126,8 @@ void Framework::BuildRoute(m2::PointD const & destination, uint32_t timeoutSec)
auto readyCallback = [this](Route const & route, IRouter::ResultCode code)
{
+ ASSERT(m_threadChecker.CalledOnOriginalThread(), ("BuildRoute_ReadyCallback"));
+
vector<storage::TIndex> absentCountries;
vector<storage::TIndex> absentRoutingIndexes;
if (code == IRouter::NoError)
@@ -2159,6 +2163,8 @@ void Framework::BuildRoute(m2::PointD const & destination, uint32_t timeoutSec)
void Framework::SetRouter(RouterType type)
{
+ ASSERT(m_threadChecker.CalledOnOriginalThread(), ("SetRouter"));
+
if (m_currentRouterType == type)
return;
SetRouterImpl(type);
@@ -2202,6 +2208,8 @@ void Framework::SetRouterImpl(RouterType type)
void Framework::RemoveRoute()
{
+ ASSERT(m_threadChecker.CalledOnOriginalThread(), ("RemoveRoute"));
+
m_bmManager.UserMarksClear(UserMarkContainer::DEBUG_MARK);
m_bmManager.ResetRouteTrack();
@@ -2209,6 +2217,8 @@ void Framework::RemoveRoute()
void Framework::CloseRouting()
{
+ ASSERT(m_threadChecker.CalledOnOriginalThread(), ("CloseRouting"));
+
GetLocationState()->StopRoutingMode();
m_routingSession.Reset();
RemoveRoute();
@@ -2217,6 +2227,8 @@ void Framework::CloseRouting()
void Framework::InsertRoute(Route const & route)
{
+ ASSERT(m_threadChecker.CalledOnOriginalThread(), ("InsertRoute"));
+
if (route.GetPoly().GetSize() < 2)
{
LOG(LWARNING, ("Invalid track - only", route.GetPoly().GetSize(), "point(s)."));
diff --git a/map/framework.hpp b/map/framework.hpp
index 8f49ae66c2..2d143b6128 100644
--- a/map/framework.hpp
+++ b/map/framework.hpp
@@ -48,6 +48,7 @@
#include "base/macros.hpp"
#include "base/strings_bundle.hpp"
+#include "base/thread_checker.hpp"
#include "std/vector.hpp"
#include "std/shared_ptr.hpp"
@@ -617,4 +618,8 @@ public:
private:
bool m_isFullScreenMode = false;
//@}
+
+#ifdef DEBUG
+ ThreadChecker m_threadChecker;
+#endif // DEBUG
};