From 8d4b8195833c9ace6b5a2259a7daaa567bc6eee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Fri, 14 Jan 2022 07:51:16 +0800 Subject: Use pthread when there's no C11 threads --- request.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'request.c') diff --git a/request.c b/request.c index 34bff9c..3b1d715 100644 --- a/request.c +++ b/request.c @@ -13,7 +13,12 @@ extern emscripten_fetch_attr_t attr; #else +#ifdef HAVE_THREADS_H #include +#else +#include +typedef pthread_t thrd_t; +#endif #include extern char *sampleurl; @@ -35,9 +40,17 @@ static size_t append(char *data, size_t size, size_t nmemb, icclient_response *r return realsize; } -static int async(void *arg) +static +#ifdef HAVE_THREADS_H +int +#else +void * +#endif +async(void *arg) { +#ifdef HAVE_THREADS_H int ret = thrd_success; +#endif struct container *container = (struct container *)arg; CURLcode res = curl_easy_perform(container->response->curl); if (container->post) @@ -45,7 +58,9 @@ static int async(void *arg) if (res == CURLE_OK && container->handler) container->handler(container->response); else { +#ifdef HAVE_THREADS_H ret = thrd_error; +#endif #ifdef DEBUG const char *error = curl_easy_strerror(res); #ifdef __ANDROID__ @@ -56,7 +71,11 @@ static int async(void *arg) #endif } free(container); +#ifdef HAVE_THREADS_H return ret; +#else + return NULL; +#endif } #endif @@ -182,6 +201,10 @@ void request(void (*handler)(icclient_response *), void (*callback)(void *), str container->handler = handler; container->response = response; thrd_t thread; +#ifdef HAVE_THREADS_H thrd_create(&thread, async, container); +#else + pthread_create(&thread, NULL, async, container); +#endif #endif } -- cgit v1.2.3