diff --git a/CMakeLists.txt b/CMakeLists.txt index d6ae0da9..9254980a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -263,7 +263,6 @@ endif() if (WIN32) -# this implies no pthreads in the lib set(LWS_MAX_SMP 1) endif() @@ -608,6 +607,7 @@ CHECK_INCLUDE_FILE(unistd.h LWS_HAVE_UNISTD_H) CHECK_INCLUDE_FILE(vfork.h LWS_HAVE_VFORK_H) CHECK_INCLUDE_FILE(sys/capability.h LWS_HAVE_SYS_CAPABILITY_H) CHECK_INCLUDE_FILE(malloc.h LWS_HAVE_MALLOC_H) +CHECK_INCLUDE_FILE(pthread.h LWS_HAVE_PTHREAD_H) CHECK_LIBRARY_EXISTS(cap cap_set_flag "" LWS_HAVE_LIBCAP) @@ -959,7 +959,7 @@ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_C_COMPILER_ID endif () if ((CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) AND NOT LWS_WITHOUT_TESTAPPS) - if (UNIX AND LWS_MAX_SMP GREATER 1) + if (UNIX AND LWS_HAVE_PTHREAD_H) # jeez clang understands -pthread but dies if he sees it at link time! # http://stackoverflow.com/questions/2391194/what-is-gs-pthread-equiv-in-clang set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread" ) @@ -1532,7 +1532,7 @@ if (NOT LWS_WITHOUT_TESTAPPS) "" "") endif() - if (UNIX AND NOT ((CMAKE_C_COMPILER_ID MATCHES "Clang") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) AND LWS_MAX_SMP GREATER 1) + if (UNIX AND NOT ((CMAKE_C_COMPILER_ID MATCHES "Clang") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) AND LWS_HAVE_PTHREAD_H) create_test_app(test-server-pthreads "test-apps/test-server-pthreads.c" "test-apps/test-server-http.c" @@ -2115,6 +2115,7 @@ message(" LWS_UNIX_SOCK = ${LWS_UNIX_SOCK}") message(" LWS_WITH_HTTP2 = ${LWS_WITH_HTTP2}") message(" LWS_SSL_SERVER_WITH_ECDH_CERT = ${LWS_SSL_SERVER_WITH_ECDH_CERT}") message(" LWS_MAX_SMP = ${LWS_MAX_SMP}") +message(" LWS_HAVE_PTHREAD_H = ${LWS_HAVE_PTHREAD_H}") message(" LWS_WITH_CGI = ${LWS_WITH_CGI}") message(" LWS_HAVE_OPENSSL_ECDH_H = ${LWS_HAVE_OPENSSL_ECDH_H}") message(" LWS_HAVE_SSL_CTX_set1_param = ${LWS_HAVE_SSL_CTX_set1_param}") diff --git a/cmake/lws_config.h.in b/cmake/lws_config.h.in index d74ef7e7..a77fa173 100644 --- a/cmake/lws_config.h.in +++ b/cmake/lws_config.h.in @@ -96,6 +96,7 @@ #cmakedefine LWS_HAVE_SSL_CTX_get0_certificate #cmakedefine LWS_HAVE_UV_VERSION_H +#cmakedefine LWS_HAVE_PTHREAD_H /* CGI apis */ #cmakedefine LWS_WITH_CGI diff --git a/test-apps/test-server-pthreads.c b/test-apps/test-server-pthreads.c index 62cb6852..e3b1f734 100644 --- a/test-apps/test-server-pthreads.c +++ b/test-apps/test-server-pthreads.c @@ -226,7 +226,7 @@ int main(int argc, char **argv) switch (n) { case 'j': threads = atoi(optarg); - if (threads > ARRAY_SIZE(pthread_service)) { + if (threads > (int)ARRAY_SIZE(pthread_service)) { lwsl_err("Max threads %lu\n", (unsigned long)ARRAY_SIZE(pthread_service)); return 1; @@ -302,7 +302,7 @@ int main(int argc, char **argv) /* tell the library what debug level to emit and to send it to syslog */ lws_set_log_level(debug_level, lwsl_emit_syslog); lwsl_notice("libwebsockets test server pthreads - license LGPL2.1+SLE\n"); - lwsl_notice("(C) Copyright 2010-2016 Andy Green \n"); + lwsl_notice("(C) Copyright 2010-2018 Andy Green \n"); printf("Using resource path \"%s\"\n", resource_path); #ifdef EXTERNAL_POLL