Используя Control.Concurrent и forkIO, есть некоторые случаи, которые оставят поток в заблокированном состоянии (это особенно часто встречается в Windows с сетью), поэтому, даже если вы пытаетесь использовать killThread, исключение никогда не возникает в потоке. Есть ли другой способ заставить поток умереть?
Моя попытка прекратить все приложение с помощью exitFailure из вспомогательного потока не имеет никакого эффекта в этих условиях.
Славная система компиляции Haskell Glasgow, версия 6.12.1 HP 2010.1.0.0
EDIT: Чтобы очистить все, я не хочу прекращать приложение, я бы предпочел просто убить поток, который был заблокирован в течение очень долгого времени. Однако существует множество примеров даже здесь, в SO с полным кодом, используя exitWith в вспомогательном потоке, и такая схема не работает в условиях, которые у меня есть.