From 61ad888a7be9be0b14e2f3f648ba9b6e6d2808d6 Mon Sep 17 00:00:00 2001 From: "Evgeny Grin (Karlson2k)" Date: Sat, 23 Apr 2016 20:20:09 +0000 Subject: perf_get_concurrent: port to systems without fork(), added error checking --- src/testcurl/Makefile.am | 10 ++- src/testcurl/perf_get_concurrent.c | 176 +++++++++++++++++++++++-------------- 2 files changed, 116 insertions(+), 70 deletions(-) diff --git a/src/testcurl/Makefile.am b/src/testcurl/Makefile.am index eb165bd4..510516c3 100644 --- a/src/testcurl/Makefile.am +++ b/src/testcurl/Makefile.am @@ -17,7 +17,6 @@ AM_CPPFLAGS = \ $(LIBCURL_CPPFLAGS) if !HAVE_W32 -PERF_GET_CONCURRENT=perf_get_concurrent TEST_CONCURRENT_STOP=test_concurrent_stop if HAVE_CURL_BINARY CURL_FORK_TEST = test_get_response_cleanup @@ -49,11 +48,12 @@ check_PROGRAMS = \ test_timeout \ test_callback \ $(CURL_FORK_TEST) \ - perf_get $(PERF_GET_CONCURRENT) + perf_get if HAVE_POSIX_THREADS check_PROGRAMS += \ - test_quiesce + test_quiesce \ + perf_get_concurrent endif if HAVE_POSTPROCESSOR @@ -128,9 +128,11 @@ perf_get_LDADD = \ perf_get_concurrent_SOURCES = \ perf_get_concurrent.c \ gauger.h +perf_get_concurrent_CFLAGS = \ + $(PTHREAD_CFLAGS) $(AM_CFLAGS) perf_get_concurrent_LDADD = \ $(top_builddir)/src/microhttpd/libmicrohttpd.la \ - @LIBCURL@ + $(PTHREAD_LIBS) @LIBCURL@ test_digestauth_SOURCES = \ test_digestauth.c diff --git a/src/testcurl/perf_get_concurrent.c b/src/testcurl/perf_get_concurrent.c index ee3717f0..5202729c 100644 --- a/src/testcurl/perf_get_concurrent.c +++ b/src/testcurl/perf_get_concurrent.c @@ -39,6 +39,7 @@ #include #include #include +#include #include "gauger.h" #if defined(CPU_COUNT) && (CPU_COUNT+0) < 2 @@ -158,74 +159,73 @@ ahc_echo (void *cls, return ret; } - -static pid_t -do_gets (int port) +static void * +thread_gets (void *param) { - pid_t ret; CURL *c; CURLcode errornum; unsigned int i; + char * const url = (char*) param; + + for (i=0;i= 0; j--) + pthread_join(par[j], NULL); + return "pthread_create error"; + } } for (j=0;j