From e67a3b24aa51463ffbd750429b7446735e6adc8c Mon Sep 17 00:00:00 2001 From: Jeremy Hayes Date: Fri, 8 Apr 2016 09:53:54 -0600 Subject: layers: image - use std mutex Change-Id: Ie132289c0e601397f54b06c1ef758c65b712f906 --- layers/image.cpp | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) (limited to 'layers/image.cpp') diff --git a/layers/image.cpp b/layers/image.cpp index e71aa9de..a6e55d57 100644 --- a/layers/image.cpp +++ b/layers/image.cpp @@ -31,16 +31,16 @@ // Allow use of STL min and max functions in Windows #define NOMINMAX +#include +#include #include +#include +#include #include #include #include -#include -#include -#include #include -#include -using namespace std; +#include #include "vk_loader_platform.h" #include "vk_dispatch_table_helper.h" @@ -55,8 +55,6 @@ using namespace std; #include "vk_layer_utils.h" #include "vk_layer_logging.h" -using namespace std; - struct layer_data { debug_report_data *report_data; vector logging_callback; @@ -73,17 +71,10 @@ struct layer_data { }; static unordered_map layer_data_map; -static int globalLockInitialized = 0; -static loader_platform_thread_mutex globalLock; +static std::mutex global_lock; static void init_image(layer_data *my_data, const VkAllocationCallbacks *pAllocator) { - layer_debug_actions(my_data->report_data, my_data->logging_callback, pAllocator, "lunarg_image"); - - if (!globalLockInitialized) { - loader_platform_thread_create_mutex(&globalLock); - globalLockInitialized = 1; - } } VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL @@ -387,18 +378,17 @@ vkCreateImage(VkDevice device, const VkImageCreateInfo *pCreateInfo, const VkAll result = device_data->device_dispatch_table->CreateImage(device, pCreateInfo, pAllocator, pImage); } if (result == VK_SUCCESS) { - loader_platform_thread_lock_mutex(&globalLock); + std::lock_guard lock(global_lock); device_data->imageMap[*pImage] = IMAGE_STATE(pCreateInfo); - loader_platform_thread_unlock_mutex(&globalLock); } return result; } VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkDestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks *pAllocator) { layer_data *device_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map); - loader_platform_thread_lock_mutex(&globalLock); + std::unique_lock lock(global_lock); device_data->imageMap.erase(image); - loader_platform_thread_unlock_mutex(&globalLock); + lock.unlock(); device_data->device_dispatch_table->DestroyImage(device, image, pAllocator); } -- cgit v1.2.3