Fix deadlock when reporting debug message on MVKInstance destruction.

This commit is contained in:
Bill Hollings 2023-10-10 15:02:06 -04:00
parent 568cc3acc0
commit 0584aa0083

View File

@ -723,11 +723,12 @@ MVKInstance::~MVKInstance() {
_useCreationCallbacks = true; _useCreationCallbacks = true;
mvkDestroyContainerContents(_physicalDevices); mvkDestroyContainerContents(_physicalDevices);
lock_guard<mutex> lock(_dcbLock); // Since this message may invoke debug callbacks, do it before locking callbacks.
mvkDestroyContainerContents(_debugReportCallbacks); MVKLogInfo("Destroying VkInstance for Vulkan version %s with %d Vulkan extensions enabled.",
MVKLogInfo("Destroyed VkInstance for Vulkan version %s with %d Vulkan extensions enabled.",
mvkGetVulkanVersionString(_appInfo.apiVersion).c_str(), mvkGetVulkanVersionString(_appInfo.apiVersion).c_str(),
_enabledExtensions.getEnabledCount()); _enabledExtensions.getEnabledCount());
lock_guard<mutex> lock(_dcbLock);
mvkDestroyContainerContents(_debugReportCallbacks);
} }