Hello,
I'm having trouble concerning pthread_join as described in this [1]
posting. A "thread A" endlessly waits for an already ended "thread B" which
called "return NULL" or "pthread_exit(NULL)" (tried both). Sometimes it
seems if you wait long enough thread A passes the pthread_join statement,
though not always. Unfortunately I haven't been able to find anything in
the mail archive, though I am sure that this has been covered before.
Thread B hangs while calling longjmp (sp->start_mark, exception) in
ptw32_throw.c. I have read about the different styles to cleanup, but I
have to admit that currently I don't understand what they are about. All
that matters is that I get pthreads to execute properly at the moment.
I downloaded pthreads 2.8.0 source code and use Visual Studio 2008
Professional C++ to compile it using Win32-Debug settings on a Windows
Server 2008 x64 system. I haven't changed any settings of the VC++
project . The program calling pthread functions is written in C++. Besides
using the source code without any alterations, I also tried to use the
binary dll versions VC2 and VCE2. Both dll's did not solve the problem.
In [1] Ross states the problem may be another dllmain being called. Though
I don't believe that's the problem in my case, I don't define any other
dllmains but the one in Pthreads. Most probably, I guess, the problem is a
wrong defined symbol or something related.
Can someone please give me a hint how to get pthread to work properly? Any
help is highly appreciated. Thank you.
Cheers,
Torsten
[1] http://www.nabble.com/pthread_join-problem-td9687824.html