VkResult vk_debug_report_instance_init(struct vk_debug_report_instance *instance)
{
- if (pthread_mutex_init(&instance->callbacks_mutex, NULL) != 0) {
+ if (mtx_init(&instance->callbacks_mutex, mtx_plain) != 0) {
return VK_ERROR_INITIALIZATION_FAILED;
}
void vk_debug_report_instance_destroy(struct vk_debug_report_instance *instance)
{
- pthread_mutex_destroy(&instance->callbacks_mutex);
+ mtx_destroy(&instance->callbacks_mutex);
}
VkResult
cb->callback = pCreateInfo->pfnCallback;
cb->data = pCreateInfo->pUserData;
- pthread_mutex_lock(&instance->callbacks_mutex);
+ mtx_lock(&instance->callbacks_mutex);
list_addtail(&cb->link, &instance->callbacks);
- pthread_mutex_unlock(&instance->callbacks_mutex);
+ mtx_unlock(&instance->callbacks_mutex);
*pCallback = (VkDebugReportCallbackEXT)(uintptr_t)cb;
(struct vk_debug_report_callback *)(uintptr_t)_callback;
/* Remove from list and destroy given callback. */
- pthread_mutex_lock(&instance->callbacks_mutex);
+ mtx_lock(&instance->callbacks_mutex);
list_del(&callback->link);
vk_free2(instance_allocator, pAllocator, callback);
- pthread_mutex_unlock(&instance->callbacks_mutex);
+ mtx_unlock(&instance->callbacks_mutex);
}
if (!instance || list_is_empty(&instance->callbacks))
return;
- pthread_mutex_lock(&instance->callbacks_mutex);
+ mtx_lock(&instance->callbacks_mutex);
/* Section 33.2 of the Vulkan 1.0.59 spec says:
*
pLayerPrefix, pMessage, cb->data);
}
- pthread_mutex_unlock(&instance->callbacks_mutex);
+ mtx_unlock(&instance->callbacks_mutex);
}
#ifndef VK_DEBUG_REPORT_H
#define VK_DEBUG_REPORT_H
-#include <pthread.h>
-
+#include "c11/threads.h"
#include "util/list.h"
#include <vulkan/vulkan.h>
struct vk_debug_report_instance {
/* VK_EXT_debug_report debug callbacks */
- pthread_mutex_t callbacks_mutex;
+ mtx_t callbacks_mutex;
struct list_head callbacks;
};