Почему gnu readline требует, чтобы я дважды нажимал control c?

Обычно Control-C отправляет sigint программе и убивает ее, если она не обнаружена. Библиотека gnureadline установит обработчики для sigint. Однако даже при отключении этих обработчиков в haskell мне все равно нужно дважды нажать Control-C, чтобы убить программу. Что происходит?

import System.Console.Readline

main = do 
        setCatchSignals False
        mainLoop


mainLoop = do
        maybeLine <- readline ">"
        case maybeLine of
            Nothing -> putStrLn ":("
            Just line -> do 
                            putStr line 
                            putStr " catch:"
                            catch <- getCatchSignals
                            putStrLn $ show $ catch
        mainLoop
6
задан Daniel Fischer 23 December 2011 в 19:45
поделиться