Well, it doesn’t happen in theory, but it happened to me today in practice.
The fact is that I’m using an OpenGLComponent in a thread. The main thread perform a makeCurrentContextActive before entering its main loop. In the main loop, it only does “if (!isActiveContext()) makeCurrentContextActive()”.
Usually it works well. (see below for reason why I’m not doing makeCurrent…tive each thread loop)
In the message thread, I’ve started this thread. However, I’ve killed it before it entered the thread loop.
The thread never exits, because makeCurrentContextActive tries to get the message thread to perform something in its “callOnMessageThread” call, which is stalled because the message thread is waiting for the thread to exit!.
The message thread is then forced to kill the OpenGL thread.
So, even if I moved the make…active in the thread loop, it would still deadlock.
I think I’m missing something about how to use the make…active method in a thread.
Can you enlighten us ?