https://bugs.freedesktop.org/show_bug.cgi?id=76252
--- Comment #6 from José Fonseca <jfons...@vmware.com> --- (In reply to comment #5) > Can you explain the problem more? Thread 2's stack trace seems like it is > waiting on ... something, but it isn't clear what or why. > Is this the NT > subsystem pausing it during thread unload? I can only guess, but yes, this is some internal DllMain-related global lock. > If so, why does this cause a > problem, i.e. why does lp_rast_destroy() hang instead of proceed if there is > only one thread that is accessing the lock? I believe this lock is also held by the main thread. From what I gather the dead lock is as follows: - the main thread held a lock before entering DllMain(DLL_PROCESS_DETACH), and is now wait for the llvmpipe worker thread to finish - the llvmpipe worker threads are trying to get the lock so it calls DllMain(DLL_THREAD_DETACH) for all DLLs, so it can never finish See also: - http://support.microsoft.com/default.aspx?scid=kb;EN-US;142243 - http://msdn.microsoft.com/en-us/library/ms682583%28VS.85%29.aspx "Because DLL notifications are serialized, entry-point functions should not attempt to communicate with other threads or processes. Deadlocks may occur as a result." - http://stackoverflow.com/questions/2603583/boost-thread-hanging-on-endthreadex - http://stackoverflow.com/questions/353038/endthreadex0-hangs - http://stackoverflow.com/questions/10441048/exit-thread-upon-deleting-static-object-during-unload-dll-causes-deadlock -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev