[PATCH] Cygwin 1.2.25+ support via gix in gwlib/conn.c (openssl thread callbacks)
Stipe Tolj
st at tolj.org
Sat Jul 19 20:59:49 CEST 2008
Stipe Tolj schrieb:
> some more debug information for the pthread issues on Cygwin:
>
> as gwlib/conn.c uses our gwthread_self() as callback function for
> openssl's CRYPTO_set_id_callback():
>
> /* Return the thread id of this thread. */
> long gwthread_self(void)
> {
> struct threadinfo *threadinfo;
> threadinfo = pthread_getspecific(tsd_key);
> if (threadinfo)
> return threadinfo->number;
> else {
> printf("XXX gwthread_self with empty threadinfo\n");
> return -1;
> }
> }
my suspect so far is pthread_getspecific() on the Cygwin platform. Seems they
have issues with it. And keep in mind that the gwlib/thread.c uses
gwthread_self() also in the mutex_foonbar() calls, hence we bang.
I can have a cywin specific gwlib/gwthread-pthread-cygwin.c that avoids the
tsd_key usage and hence avoids pthread_[get|set]specific() void* data for
threads and stores the corresponding threadinfo records to a global (and hence
self-locked) table.
Stipe
-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany
tolj.org system architecture Kannel Software Foundation (KSF)
http://www.tolj.org/ http://www.kannel.org/
mailto:st_{at}_tolj.org mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------
More information about the devel
mailing list