какие-то причины в плане перформанса, или только краткость?
forkForever :: IO a -> IO ThreadId
forkForever act = forkIO catchLoop
where
catchLoop :: IO ()
catchLoop = do
void act `catchAny` (\_ -> pure ())
catchLoop
Как по мне, то за более явный код коллеги и другие люди, которые потом его будут читать, будут более благодарны 🙂
Т.к. фикс более понятный?
catchAny может поймать то что не надо ловить. ThreadKilled например
Обсуждают сегодня