I've come across a problem with a pike 7.2 lockup on NT (or at least I think it's NT related):
A pike process has some threads (seven, to be exact), where some wait on Thread.Queue conditions and one is waiting in a blocking read from a socket. The main thread is running in the normal backend. After a while everything locks up when one thread puts an item in a Thread.Queue and the corresponding reading thread simply doesn't get started. In this state the process seems to be completely locked up, at least a SIGBREAK won't cause a call to the installed signal handler. The only way to get it started again is to close the socket from the other side (at which point the SIGBREAK handler will also get started with the queued up signal).
What is at work in the lower layers here? Is there some internal mediating thread that's been locked? Does anyone remember if some fix that's only gone into 7.3 possibly could address this?
pike-devel@lists.lysator.liu.se