Hello,
I am in the situation that a pthread_join does not return, even
though the thread has called pthread_exit.
I read the cleanup notes, but I think it does not apply here.
I am using the C cleanup code. One thread calls pthread_exit,
the other phtread_join. I've verified that the thread calling
pthread_exit does the longjmp to the thread start code, which
calls _endthreadex.
The main thread calling pthread_join does hang in
WaitForMultipleObjects.
The problem only occurs when I am using some unrelated(?)
external code (the Mellanox SDP Infiniband implementation),
so it could be caused by that, or just be a race appearing
with this code.
There are other pthreads in my application, which terminate
correctly with pthread_exit/pthread_join. Only one thread -
the network receive thread ;)- does exhibit the problem.
Do you have an idea what could be the cause of this problem?
Anything else I could try to find the problem?