From 70a501d8ecf6b490aae1d4a0ef6fa19ff1e0910a Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Wed, 26 Apr 2023 14:02:45 -0400
Subject: [PATCH] winrt: Don't reference generic Condition Variables at all.
It always has the SRWLOCK implementation available to it, so let the
linker throw away the generic version if possible.
---
src/thread/windows/SDL_syscond_cv.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/thread/windows/SDL_syscond_cv.c b/src/thread/windows/SDL_syscond_cv.c
index 3cdd59b30ddc..e0ac306adc81 100644
--- a/src/thread/windows/SDL_syscond_cv.c
+++ b/src/thread/windows/SDL_syscond_cv.c
@@ -194,10 +194,9 @@ static const SDL_cond_impl_t SDL_cond_impl_cv = {
&SDL_CondWaitTimeoutNS_cv,
};
-/**
- * Generic Condition Variable implementation using SDL_mutex and SDL_sem
- */
+#ifndef __WINRT__
+/* Generic Condition Variable implementation using SDL_mutex and SDL_sem */
static const SDL_cond_impl_t SDL_cond_impl_generic = {
&SDL_CreateCond_generic,
&SDL_DestroyCond_generic,
@@ -205,13 +204,13 @@ static const SDL_cond_impl_t SDL_cond_impl_generic = {
&SDL_CondBroadcast_generic,
&SDL_CondWaitTimeoutNS_generic,
};
+#endif
SDL_cond *
SDL_CreateCond(void)
{
if (SDL_cond_impl_active.Create == NULL) {
- /* Default to generic implementation, works with all mutex implementations */
- const SDL_cond_impl_t *impl = &SDL_cond_impl_generic;
+ const SDL_cond_impl_t *impl = NULL;
if (SDL_mutex_impl_active.Type == SDL_MUTEX_INVALID) {
/* The mutex implementation isn't decided yet, trigger it */
@@ -228,6 +227,8 @@ SDL_CreateCond(void)
/* Link statically on this platform */
impl = &SDL_cond_impl_cv;
#else
+ /* Default to generic implementation, works with all mutex implementations */
+ impl = &SDL_cond_impl_generic;
{
HMODULE kernel32 = GetModuleHandle(TEXT("kernel32.dll"));
if (kernel32) {