--- a/src/main/cpp/loggingevent.cpp +++ b/src/main/cpp/loggingevent.cpp @@ -339,12 +339,12 @@ const LogString& LoggingEvent::getCurrentThreadName() { -#if defined(_WIN32) - using ThreadIdType = DWORD; - ThreadIdType threadId = GetCurrentThreadId(); -#elif LOG4CXX_HAS_PTHREAD_SELF +#ifdef LOG4CXX_HAS_PTHREAD_SELF using ThreadIdType = pthread_t; ThreadIdType threadId = pthread_self(); +#elif defined(_WIN32) + using ThreadIdType = DWORD; + ThreadIdType threadId = GetCurrentThreadId(); #else using ThreadIdType = int; ThreadIdType threadId = 0; @@ -368,16 +368,16 @@ return thread_id_string; } -#if defined(_WIN32) - char result[20]; - apr_snprintf(result, sizeof(result), LOG4CXX_WIN32_THREAD_FMTSPEC, threadId); - thread_id_string = Transcoder::decode(result); -#elif LOG4CXX_HAS_PTHREAD_SELF +#ifdef LOG4CXX_HAS_PTHREAD_SELF // pthread_t encoded in HEX takes needs as many characters // as two times the size of the type, plus an additional null byte. char result[sizeof(pthread_t) * 3 + 10]; apr_snprintf(result, sizeof(result), LOG4CXX_APR_THREAD_FMTSPEC, (void*) &threadId); thread_id_string = Transcoder::decode(result); +#elif defined(_WIN32) + char result[20]; + apr_snprintf(result, sizeof(result), LOG4CXX_WIN32_THREAD_FMTSPEC, threadId); + thread_id_string = Transcoder::decode(result); #else thread_id_string = LOG4CXX_STR("0x00000000"); #endif --- a/src/main/include/CMakeLists.txt +++ b/src/main/include/CMakeLists.txt @@ -140,9 +140,11 @@ CHECK_SYMBOL_EXISTS(wcstombs "cstdlib" HAS_WCSTOMBS) CHECK_SYMBOL_EXISTS(fwide "cwchar" HAS_FWIDE ) CHECK_SYMBOL_EXISTS(syslog "syslog.h" HAS_SYSLOG) -if(UNIX) +if(UNIX OR MINGW) set(CMAKE_REQUIRED_LIBRARIES "pthread") - CHECK_SYMBOL_EXISTS(pthread_sigmask "signal.h" HAS_PTHREAD_SIGMASK) + if(UNIX) + CHECK_SYMBOL_EXISTS(pthread_sigmask "signal.h" HAS_PTHREAD_SIGMASK) + endif() CHECK_SYMBOL_EXISTS(pthread_self "pthread.h" HAS_PTHREAD_SELF) # Check for the (linux) pthread_setname_np. @@ -157,7 +159,7 @@ if(${PTHREAD_GETNAME_NP_FOUND}) set(HAS_PTHREAD_GETNAME 1) endif() -endif(UNIX) +endif() foreach(varName HAS_THREAD_LOCAL