pthreads: build test server based on pthreads.h availability

... and fix signed / unsigned comparison
This commit is contained in:
Andy Green 2018-03-02 09:01:22 +08:00
parent 658b86ed9f
commit 3de2e9aa8a
3 changed files with 7 additions and 5 deletions

View file

@ -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}")

View file

@ -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

View file

@ -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 <andy@warmcat.com>\n");
lwsl_notice("(C) Copyright 2010-2018 Andy Green <andy@warmcat.com>\n");
printf("Using resource path \"%s\"\n", resource_path);
#ifdef EXTERNAL_POLL