On 09/12/2013 20:47, Christopher Faylor wrote: > On Sun, Dec 08, 2013 at 05:36:16PM +0000, Jon TURNEY wrote: >> I don't really understand the intricacies of cygwin signal delivery, >> but I see that it can suspend the target thread to determine if it's in >> a safe place to deliver the signal (outside a win32 API call). I think >> that sometimes the thread is not correctly resumed. >> >> This appears to be the cause of been a long-standing problem with the >> X.org X server on cygwin, which we work around by disabling >> smart-scheduling (no great loss), but I've only just recently >> understood enough about the problem to produce a STC. >> >> If you run the attached for a while, it stops. According to Process >> Hacker, the main thread is in the suspended state, inside ntdll.dll. >> e.g.: > > I think I have worked around the problem: calling GetModuleName for the > address associated with ntdll.dll while the thread is suspended can cause > the program (thread?) to hang.
Ah, makes sense. It's probably deadlocked on the global loader lock, if you happen to suspend the thread while it is held. > This should be rectified in today's snapshot. -- Jon TURNEY Volunteer Cygwin/X X Server maintainer -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple