aboutsummaryrefslogtreecommitdiff
path: root/layers/threading.cpp
diff options
context:
space:
mode:
authorMike Stroyan <stroyan@google.com>2016-02-08 10:27:55 -0700
committerMike Stroyan <stroyan@google.com>2016-02-08 10:27:55 -0700
commit7ee1c6d9619fa9dc66939ccd8756c393a18117f8 (patch)
treed45270689b5f5948bfe4c9f7b403ae4e18f1fec8 /layers/threading.cpp
parentd3246ce01b82ceded02211e8a95ef57204a93701 (diff)
downloadusermoji-7ee1c6d9619fa9dc66939ccd8756c393a18117f8.tar.xz
layers: lock use of threading layer cmd pool map
Access to command_pool_map data structure in threading validation layer needs a mutex.
Diffstat (limited to 'layers/threading.cpp')
-rw-r--r--layers/threading.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/layers/threading.cpp b/layers/threading.cpp
index fcdd38b1..db59aa95 100644
--- a/layers/threading.cpp
+++ b/layers/threading.cpp
@@ -357,7 +357,9 @@ VkResult VKAPI_CALL vkAllocateCommandBuffers(
// Record mapping from command buffer to command pool
if (VK_SUCCESS == result) {
for (int index=0;index<pAllocateInfo->commandBufferCount;index++) {
+ loader_platform_thread_lock_mutex(&threadingLock);
command_pool_map[pCommandBuffers[index]] = pAllocateInfo->commandPool;
+ loader_platform_thread_unlock_mutex(&threadingLock);
}
}
@@ -385,7 +387,9 @@ void VKAPI_CALL vkFreeCommandBuffers(
finishWriteObject(my_data, commandPool);
for (int index=0;index<commandBufferCount;index++) {
finishWriteObject(my_data, pCommandBuffers[index], lockCommandPool);
+ loader_platform_thread_lock_mutex(&threadingLock);
command_pool_map.erase(pCommandBuffers[index]);
+ loader_platform_thread_unlock_mutex(&threadingLock);
}
}