The +seh does not add anything to the log. Actually I thought that I failed to turn it on until the application crashed for another reason and then I found something with seh in the log... The handler called is /********************************************************************** * usr1_handler * * Handler for SIGUSR1, used to signal a thread that it got suspended. */
static HANDLER_DEF(usr1_handler) { LARGE_INTEGER timeout; ..... skipped a couple of lines NTDLL_wait_for_multiple_objects( 0, NULL, 0, &timeout ); }
It is called AFTER the 5-seconds timeout has expired. Also it is called for every thread of the application - not just for these two. It makes me think that is the result of the problem rather than its cause.
Any ideas why a call to the XQueryPointer function may fail to return in 5 seconds? The whole X system freezes until I kill wine processes from a text shell.
Thanks, Nick
Mike Hearn wrote:
I think this is caused by Wine doing an XLock then not releasing it for whatever reason - I guess the signal handler being called in the second backtrace indicates a crash or something. Have you tried doing a +seh trace?