С таким скриптом
-- foo.hs
import System.Process
import Control.Concurrent
main = do
a <- runCommand "yes"
threadDelay 1000000
terminateProcess a
Я получаю ожидаемое поведение - yes
работает до тех пор, пока threadDelay
не встанет. Но если я заменю "yes"
на "runghc bar.hs"
, где bar.hs
import Control.Monad
import Control.Concurrent
main = forever (print 5 >> threadDelay 100000)
...тогда bar.hs работает вечно. Есть ли лучший способ заставить runghc завершить работу?
Изменить: это поведение в Linux