On 28/06/2016 11:34, Rainer Jung wrote:
> Am 28.06.2016 um 11:15 schrieb Mark Thomas:

<snip />

>> Index: src/ssl.c
>> ===================================================================
>> --- src/ssl.c    (revision 1750259)
>> +++ src/ssl.c    (working copy)
>> @@ -420,6 +420,10 @@
>>      return psaptr->PSATOLD;
>>  #elif defined(WIN32)
>>      return (unsigned long)GetCurrentThreadId();
>> +#elif defined(DARWIN)
>> +    uint64_t tid;
>> +    pthread_threadid_np(NULL, &tid);
>> +    return (unsigned long)tid;
>>  #else
>>      return (unsigned long)(apr_os_thread_current());
>>  #endif
>>
>>
>> I want to do some similar testing for Linux before adding what I suspect
>> will be a very similar block using gettid().
> 
> We could either add something to configure.in. Untested:
> 
> Index: native/configure.in
> ===================================================================
> --- native/configure.in (revision 1750462)
> +++ native/configure.in (working copy)
> @@ -218,6 +218,9 @@
>      *-solaris2*)
>          APR_ADDTO(TCNATIVE_LIBS, -lkstat)
>          ;;
> +    *linux*)
> +        APR_ADDTO(CFLAGS, -DTCNATIVE_LINUX)
> +        ;;
>      *)
>          ;;
>  esac
> 
> 
> and then use a
> 
> #ifdef TCNATIVE_LINUX
> 
> or we copy some other more direct linux check from e.g. APR:
> 
> #ifdef __linux__
> 
> The latter looks simpler, but the version above is based on all the
> logic put into config.guess.

I'd go with the __linux__ option as that is consistent with what we
already use in os/unix/system.c

I'm not against the change to configure.in, I just think we should be
consistent with how we do this throughout the code base.

>> I do think OS specific code to get the real thread ID is the way to go
>> here until we can switch to OpenSSL 1.1.0 at which point the problem
>> should go away.
> 
> Agreed, but cleaning up at the end of a thread would be good as well,
> e.g. if the executor is configured to renew threads when a context is
> reloaded we can accumulate lots of old hash entries.

Agreed.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to