From: Jeff J. <je...@bo...> - 2001-10-17 18:00:02
|
Could webkit monitor the number of live servlet threads and if they die, create new threads? Is there a way to stop threads that are taking too long? Is there a way already to find out how many threads are healthy? -Jeff |
From: Geoff T. <gta...@na...> - 2001-10-18 21:12:44
|
At 01:49 PM 10/17/01 -0400, Jeff Johnson wrote: >Could webkit monitor the number of live servlet threads and if they die, >create new threads? Is there a way to stop threads that are taking too >long? Is there a way already to find out how many threads are healthy? Most of these ideas could be implemented, but they aren't there currently. The one thing I don't see how we could do would be to stop threads that are taking too long. I think there's no way to kill a running thread in Python, at least not portably. (And even if you could do so, it would leave the whole process in an unstable state. The docs on the Win32 functions for killing threads warn you to do it only as a last resort as it makes the whole process unstable; I assume similar warnings apply for Unix.) The best we could do is monitor the health of threads, and if threads are dying or getting stuck in infinite loops, we could do an "emergency shutdown" where we wait some length of time for the currently processing threads to exit, but if they don't exit in some time period, then we just try to pickle the sessions to disk and exit the process. Then some watchdog process would notice that WebKit had stopped and restart it. Of course, it's even better to just eliminate all bugs in WebKit and in your servlets so that threads never die or get in infinite loops :-) Are you actually noticing that threads are getting wedged? -- - Geoff Talvola gtalvola@NameConnector.com |
From: Jack M. <ja...@xi...> - 2001-10-18 21:18:32
|
> I think there's no way to kill a running > thread in Python, at least not portably. (And even if you could do so, it > would leave the whole process in an unstable state. The docs on the Win32 > functions for killing threads warn you to do it only as a last resort as it > makes the whole process unstable; I assume similar warnings apply for Unix.) This is true also with pthreads I believe. There is no real portable way to 'cancel' (as pthreads calls it) a thread. Does Java even support this? You'd think it must since there is no non-blocking operation in Java. This is just a failure with current thread systems almost across the board. Maybe someday we'll have a solution :) jack. |