]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tidy-up: `Curl_thread_create()` callback return type
authorViktor Szakats <commit@vsz.me>
Thu, 10 Jul 2025 15:59:59 +0000 (17:59 +0200)
committerViktor Szakats <commit@vsz.me>
Mon, 21 Jul 2025 14:17:42 +0000 (16:17 +0200)
Replace repeat `#ifdef` code with a macro for the return type of
the thread function.

Also:
- always define `CURL_STDCALL`, allowing to use it without guards.
- lib1307: drop single-use macro `CAINFO`.

Closes #17889

lib/asyn-thrdd.c
lib/curl_threads.c
lib/curl_threads.h
tests/libtest/lib3207.c

index 49daf2fd69164d86553a5d8f4921a371cb2a0bba..1752f3ada0654c76cf9783d6c99d77c1f990d527 100644 (file)
@@ -203,13 +203,7 @@ err_exit:
  * For builds without ARES, but with USE_IPV6, create a resolver thread
  * and wait on it.
  */
-static
-#if defined(CURL_WINDOWS_UWP) || defined(UNDER_CE)
-DWORD
-#else
-unsigned int
-#endif
-CURL_STDCALL getaddrinfo_thread(void *arg)
+static CURL_THREAD_RETURN_T CURL_STDCALL getaddrinfo_thread(void *arg)
 {
   struct async_thrdd_addr_ctx *addr_ctx = arg;
   char service[12];
@@ -263,13 +257,7 @@ CURL_STDCALL getaddrinfo_thread(void *arg)
 /*
  * gethostbyname_thread() resolves a name and then exits.
  */
-static
-#if defined(CURL_WINDOWS_UWP) || defined(UNDER_CE)
-DWORD
-#else
-unsigned int
-#endif
-CURL_STDCALL gethostbyname_thread(void *arg)
+static CURL_THREAD_RETURN_T CURL_STDCALL gethostbyname_thread(void *arg)
 {
   struct async_thrdd_addr_ctx *addr_ctx = arg;
   bool all_gone;
index eae7544016185b686c207cb557d25ff13b323efc..24561a6dde3763442a610ed57205341aaa18b319 100644 (file)
@@ -59,7 +59,8 @@ static void *curl_thread_create_thunk(void *arg)
   return 0;
 }
 
-curl_thread_t Curl_thread_create(unsigned int (*func) (void *), void *arg)
+curl_thread_t Curl_thread_create(CURL_THREAD_RETURN_T
+                                 (CURL_STDCALL *func) (void *), void *arg)
 {
   curl_thread_t t = malloc(sizeof(pthread_t));
   struct Curl_actual_call *ac = malloc(sizeof(struct Curl_actual_call));
@@ -101,14 +102,8 @@ int Curl_thread_join(curl_thread_t *hnd)
 
 #elif defined(USE_THREADS_WIN32)
 
-curl_thread_t Curl_thread_create(
-#if defined(CURL_WINDOWS_UWP) || defined(UNDER_CE)
-                                 DWORD
-#else
-                                 unsigned int
-#endif
-                                 (CURL_STDCALL *func) (void *),
-                                 void *arg)
+curl_thread_t Curl_thread_create(CURL_THREAD_RETURN_T
+                                 (CURL_STDCALL *func) (void *), void *arg)
 {
 #if defined(CURL_WINDOWS_UWP) || defined(UNDER_CE)
   typedef HANDLE curl_win_thread_handle_t;
index b060d4acd3ef4b3de707c7baff8ba78a413cf27d..fb74561ffa18f799cd6d404745b62d6015e58e95 100644 (file)
 #  define Curl_mutex_acquire(m)  EnterCriticalSection(m)
 #  define Curl_mutex_release(m)  LeaveCriticalSection(m)
 #  define Curl_mutex_destroy(m)  DeleteCriticalSection(m)
+#else
+#  define CURL_STDCALL
 #endif
 
-#if defined(USE_THREADS_POSIX) || defined(USE_THREADS_WIN32)
-
-curl_thread_t Curl_thread_create(
 #if defined(CURL_WINDOWS_UWP) || defined(UNDER_CE)
-                                 DWORD
+#define CURL_THREAD_RETURN_T DWORD
 #else
-                                 unsigned int
+#define CURL_THREAD_RETURN_T unsigned int
 #endif
-                                 (CURL_STDCALL *func) (void *),
-                                 void *arg);
+
+#if defined(USE_THREADS_POSIX) || defined(USE_THREADS_WIN32)
+
+curl_thread_t Curl_thread_create(CURL_THREAD_RETURN_T
+                                 (CURL_STDCALL *func) (void *), void *arg);
 
 void Curl_thread_destroy(curl_thread_t *hnd);
 
index e1c4f4b055ed8db6133919d0377225cb9d90ff51..b5fb4481d9b3cd54b53165020e63d3f74b46177d 100644 (file)
 
 #include "memdebug.h"
 
-#if defined(USE_THREADS_POSIX) || defined(USE_THREADS_WIN32)
 #if defined(USE_THREADS_POSIX)
 #include <pthread.h>
 #endif
+
 #include "curl_threads.h"
-#endif
 
-#define CAINFO libtest_arg2
 #define THREAD_SIZE 16
 #define PER_THREAD_SIZE 8
 
@@ -70,18 +68,7 @@ static size_t write_memory_callback(char *contents, size_t size,
   return realsize;
 }
 
-static
-#if defined(USE_THREADS_POSIX) || defined(USE_THREADS_WIN32)
-#if defined(CURL_WINDOWS_UWP) || defined(UNDER_CE)
-DWORD
-#else
-unsigned int
-#endif
-CURL_STDCALL
-#else
-unsigned int
-#endif
-test_thread(void *ptr)
+static CURL_THREAD_RETURN_T CURL_STDCALL test_thread(void *ptr)
 {
   struct Ctx *ctx = (struct Ctx *)ptr;
   CURLcode res = CURLE_OK;
@@ -97,7 +84,7 @@ test_thread(void *ptr)
 
       /* use the share object */
       curl_easy_setopt(curl, CURLOPT_SHARE, ctx->share);
-      curl_easy_setopt(curl, CURLOPT_CAINFO, CAINFO);
+      curl_easy_setopt(curl, CURLOPT_CAINFO, libtest_arg2);
 
       curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_memory_callback);
       curl_easy_setopt(curl, CURLOPT_WRITEDATA, ptr);