On Fri, Nov 12, 2010 at 10:12, Arnold Hendriks <[email protected]> wrote:
> On 11-11-2010 23:09, Roumen Petrov wrote:
>>
>> Arnold Hendriks wrote:
>>>
>>> Oops. https://bugzilla.gnome.org/show_bug.cgi?id=599241 - i dropped the 1
>>
>> May be libxml configure script don't detect(force) automatically windows
>> threads for mingw builds.
>> In this case user could run it with --with-threads=win32.
>
> I have pthreads-win32 and configure libxml using
> ./configure --without-ftp --without-http --without-python --without-zlib
>
> no specific options - probably it tests for pthreads before looking into
> win32 threads ?
>>
>> The issue 599241 is not correct as with --with-threads=win32 libxml2
>> builds fine with and without w32-pthread package installed. So I would like
>> to propose bug 599241 to be marked either as invalid or as feature request.
>> In first case a new issue could be opened - 'automatic detection of
>> windows thread for mingw* host'.
>> About feature request - why not libxml to support both threading models,
>> windows and posix , for mingw* hosts.
>
> See eg
> http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Fapis%2Fconcep17.htm
> - a portable application cannot assume pthread_t is castable from/to an
> integer.
> (the first reference I found, but i'm sure it's in the posix specs too - the
> issue comes up once in a while on comp.programming.threads)
>
> This is the pthread-win32 definition of pthread_t:
>
> typedef struct {
> void * p; /* Pointer to actual object */
> unsigned int x; /* Extra information - reuse count etc */
> } ptw32_handle_t;
>
> typedef ptw32_handle_t pthread_t;
>
> and it's the reason why
>
> tid[i] = (pthread_t) -1;
>
> fails
>
> Setting tid[i] to pthread_self may not be in the right spirit for the tests
> I guess, but I don't really know of another way to initialize a threadid.
memset(&tid[i], 0xff, sizeof(tid[i])) ?
May be even replace whole
for (i = 0; i < num_threads; i++) {
results[i] = NULL;
tid[i] = (pthread_t) -1;
}
by
memset(results, 0, sizeof(*results)*num_threads);
memset(tid, 0xff, sizeof(*tid)*num_threads);
?
--
Andrew W. Nosenko <[email protected]>
_______________________________________________
xml mailing list, project page http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml