layers: lock use of threading layer cmd pool map

Access to command_pool_map data structure in threading validation layer
needs a mutex.
diff --git a/layers/threading.h b/layers/threading.h
index a0b025f..c6315d2 100644
--- a/layers/threading.h
+++ b/layers/threading.h
@@ -313,7 +313,10 @@
 static void startWriteObject(struct layer_data *my_data, VkCommandBuffer object, bool lockPool=true)
 {
     if (lockPool) {
-        startWriteObject(my_data, command_pool_map[object]);
+        loader_platform_thread_lock_mutex(&threadingLock);
+        VkCommandPool pool = command_pool_map[object];
+        loader_platform_thread_unlock_mutex(&threadingLock);
+        startWriteObject(my_data, pool);
     }
     my_data->c_VkCommandBuffer.startWrite(my_data->report_data, object);
 }
@@ -321,17 +324,26 @@
 {
     my_data->c_VkCommandBuffer.finishWrite(object);
     if (lockPool) {
-        finishWriteObject(my_data, command_pool_map[object]);
+        loader_platform_thread_lock_mutex(&threadingLock);
+        VkCommandPool pool = command_pool_map[object];
+        loader_platform_thread_unlock_mutex(&threadingLock);
+        finishWriteObject(my_data, pool);
     }
 }
 static void startReadObject(struct layer_data *my_data, VkCommandBuffer object)
 {
-    startReadObject(my_data, command_pool_map[object]);
+    loader_platform_thread_lock_mutex(&threadingLock);
+    VkCommandPool pool = command_pool_map[object];
+    loader_platform_thread_unlock_mutex(&threadingLock);
+    startReadObject(my_data, pool);
     my_data->c_VkCommandBuffer.startRead(my_data->report_data, object);
 }
 static void finishReadObject(struct layer_data *my_data, VkCommandBuffer object)
 {
     my_data->c_VkCommandBuffer.finishRead(object);
-    finishReadObject(my_data, command_pool_map[object]);
+    loader_platform_thread_lock_mutex(&threadingLock);
+    VkCommandPool pool = command_pool_map[object];
+    loader_platform_thread_unlock_mutex(&threadingLock);
+    finishReadObject(my_data, pool);
 }
 #endif // THREADING_H