
On Wed, Apr 4, 2012 at 6:37 AM, tsuraan
What sorts of things can cause a thread to get an asynchronous "thread killed" exception? I've been seeing rare, inexplicable "thread killed" messages in my Snap handlers for a long time, but they aren't from Snap's timeout code. I recently upgraded to ghc 7.4.1, and that caused the kills to happen a lot more often, but also gave me some traceback capabilities. I tracked the most common kills down to cryptohash's Crypto.Hash.Tiger.update function, but that's about as
That's probably not where the threadKill is being sent *from*, it's where your thread received it.
pure a FFI function can be, so I don't know how that would be causing anything weird to happen. I also sometimes get the kills in the Tiger.finalize function, and I get other ones in functions that I haven't been able to track down yet. Given that the thread kills aren't from Snap's timeout code (they happen in under a second, and I have snap's timeouts turned to an insanely high value), what sort of other things cause ThreadKilled exceptions?
It's hard to rule Snap timeouts out; try building snap-core with the
"-fdebug" flag and running your app with "DEBUG=1", you'll get a spew of
debugging output from Snap on stderr.
G
--
Gregory Collins