From 180893e79dd358d2f8f720b200a62daa2838e341 Mon Sep 17 00:00:00 2001
From: Kahrl <kahrl@gmx.net>
Date: Sun, 7 Feb 2016 04:24:24 +0100
Subject: [PATCH] Remove ClientMap::m_camera_mutex

All places that lock this mutex are only called by the main thread:
ClientMap::updateCamera(), ClientMap::updateDrawList(), ClientMap::renderMap(), ClientMap::renderPostFx().
---
 src/clientmap.cpp | 11 +----------
 src/clientmap.h   |  2 --
 2 files changed, 1 insertion(+), 12 deletions(-)

diff --git a/src/clientmap.cpp b/src/clientmap.cpp
index b865c2780..024f2a266 100644
--- a/src/clientmap.cpp
+++ b/src/clientmap.cpp
@@ -157,12 +157,9 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver)
 	}
 	m_drawlist.clear();
 
-	m_camera_mutex.lock();
 	v3f camera_position = m_camera_position;
 	v3f camera_direction = m_camera_direction;
 	f32 camera_fov = m_camera_fov;
-	//v3s16 camera_offset = m_camera_offset;
-	m_camera_mutex.unlock();
 
 	// Use a higher fov to accomodate faster camera movements.
 	// Blocks are cropped better when they are drawn.
@@ -433,11 +430,9 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
 	int crack = m_client->getCrackLevel();
 	u32 daynight_ratio = m_client->getEnv().getDayNightRatio();
 
-	m_camera_mutex.lock();
 	v3f camera_position = m_camera_position;
 	v3f camera_direction = m_camera_direction;
 	f32 camera_fov = m_camera_fov;
-	m_camera_mutex.unlock();
 
 	/*
 		Get all blocks and draw all visible ones
@@ -799,11 +794,7 @@ void ClientMap::renderPostFx(CameraMode cam_mode)
 	// Sadly ISceneManager has no "post effects" render pass, in that case we
 	// could just register for that and handle it in renderMap().
 
-	m_camera_mutex.lock();
-	v3f camera_position = m_camera_position;
-	m_camera_mutex.unlock();
-
-	MapNode n = getNodeNoEx(floatToInt(camera_position, BS));
+	MapNode n = getNodeNoEx(floatToInt(m_camera_position, BS));
 
 	// - If the player is in a solid node, make everything black.
 	// - If the player is in liquid, draw a semi-transparent overlay.
diff --git a/src/clientmap.h b/src/clientmap.h
index 54d1dc96d..d9239b52e 100644
--- a/src/clientmap.h
+++ b/src/clientmap.h
@@ -89,7 +89,6 @@ class ClientMap : public Map, public scene::ISceneNode
 
 	void updateCamera(v3f pos, v3f dir, f32 fov, v3s16 offset)
 	{
-		MutexAutoLock lock(m_camera_mutex);
 		m_camera_position = pos;
 		m_camera_direction = dir;
 		m_camera_fov = fov;
@@ -149,7 +148,6 @@ class ClientMap : public Map, public scene::ISceneNode
 	v3f m_camera_direction;
 	f32 m_camera_fov;
 	v3s16 m_camera_offset;
-	Mutex m_camera_mutex;
 
 	std::map<v3s16, MapBlock*> m_drawlist;
 	
-- 
GitLab