From 784fc23958799f240369a3fdb0f1d211c20b273d Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Fri, 1 Aug 2025 22:38:21 +0200 Subject: [PATCH] add and use thread callconv macro --- lib/curl_setup.h | 2 ++ lib/curl_threads.h | 2 +- tests/libtest/lib3026.c | 2 +- tests/server/sockfilt.c | 3 ++- tests/server/util.c | 3 ++- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/curl_setup.h b/lib/curl_setup.h index b73dd65c5f..867f645ccd 100644 --- a/lib/curl_setup.h +++ b/lib/curl_setup.h @@ -642,11 +642,13 @@ #if defined(CURL_WINDOWS_UWP) || defined(UNDER_CE) #define CURL_THREAD_RETURN_T DWORD +#define CURL_WIN_THREADFUNC WINAPI typedef HANDLE curl_win_thread_handle_t; #define CURL_WIN_BEGINTHREAD CreateThread #else #define CURL_THREAD_RETURN_T unsigned int #ifdef _WIN32 +#define CURL_WIN_THREADFUNC __stdcall typedef uintptr_t curl_win_thread_handle_t; #define CURL_WIN_BEGINTHREAD _beginthreadex #endif /* _WIN32 */ diff --git a/lib/curl_threads.h b/lib/curl_threads.h index 8748cf8b2d..b17a789dd1 100644 --- a/lib/curl_threads.h +++ b/lib/curl_threads.h @@ -35,7 +35,7 @@ # define Curl_mutex_release(m) pthread_mutex_unlock(m) # define Curl_mutex_destroy(m) pthread_mutex_destroy(m) #elif defined(USE_THREADS_WIN32) -# define CURL_STDCALL __stdcall +# define CURL_STDCALL CURL_WIN_THREADFUNC # define curl_mutex_t CRITICAL_SECTION # define curl_thread_t HANDLE # define curl_thread_t_null (HANDLE)0 diff --git a/tests/libtest/lib3026.c b/tests/libtest/lib3026.c index 92d637aa7c..8c36de3dd0 100644 --- a/tests/libtest/lib3026.c +++ b/tests/libtest/lib3026.c @@ -27,7 +27,7 @@ #ifdef _WIN32 #include -static CURL_THREAD_RETURN_T __stdcall t3026_run_thread(void *ptr) +static CURL_THREAD_RETURN_T CURL_WIN_THREADFUNC t3026_run_thread(void *ptr) { CURLcode *result = ptr; diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c index a16f032e04..5e57b193e9 100644 --- a/tests/server/sockfilt.c +++ b/tests/server/sockfilt.c @@ -413,7 +413,8 @@ struct select_ws_wait_data { HANDLE abort; /* internal event to abort waiting threads */ }; #include -static unsigned int WINAPI select_ws_wait_thread(void *lpParameter) +static +unsigned int CURL_WIN_THREADFUNC select_ws_wait_thread(void *lpParameter) { struct select_ws_wait_data *data; HANDLE signal, handle, handles[2]; diff --git a/tests/server/util.c b/tests/server/util.c index 44425f03e4..2ec5dae624 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -488,7 +488,8 @@ static LRESULT CALLBACK main_window_proc(HWND hwnd, UINT uMsg, /* Window message queue loop for hidden main window, details see above. */ #include -static CURL_THREAD_RETURN_T WINAPI main_window_loop(void *lpParameter) +static +CURL_THREAD_RETURN_T CURL_WIN_THREADFUNC main_window_loop(void *lpParameter) { WNDCLASS wc; BOOL ret;