From 154e27968fb6d7d3a83c146f7cc4cff49963b57f Mon Sep 17 00:00:00 2001 From: Leith Bade Date: Thu, 8 Oct 2015 11:36:22 +1100 Subject: [PATCH] [core] Protect MapData.pause with a lock Fixes #2522 --- src/mbgl/map/map.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 5fd063838..811fe1159 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -32,8 +32,8 @@ Map::~Map() { void Map::pause() { assert(data->mode == MapMode::Continuous); + std::unique_lock lockPause(data->mutexPause); if (!data->paused) { - std::unique_lock lockPause(data->mutexPause); context->invoke(&MapContext::pause); data->condPause.wait(lockPause, [&]{ return data->paused; }); } @@ -44,6 +44,7 @@ bool Map::isPaused() { } void Map::resume() { + std::unique_lock lockPause(data->mutexPause); data->paused = false; data->condPause.notify_all(); }