2013-05-16 26 views
14

Dosya sistemimdeki değişiklikleri izlemek için dosya sistemimi izlemek üzere FSNotify paketini kullanıyorum, böylece bunları otomatik olarak Pandoc üzerinden çalıştırabilirim. Ancak, yöneticiyi güzelce çıkarması konusunda sorun yaşıyorum. HaliyleHaskell ile dosya sistemini izleme

, benim kod Yesod's use of the same package dayanmaktadır:

module Main where 

import System.FSNotify 
import Filesystem (getWorkingDirectory) 
import System.Exit 
import Control.Concurrent 

main = do 
    cwd <- getWorkingDirectory 
    putStrLn "Watching current directory, press RETURN to exit." 
    withManager $ \man -> do 
     _ <- forkIO $ do 
      watchTree man cwd (const True) $ \fp -> print fp 
     _ <- getLine 
     exitSuccess 

Ben runhaskell kullandığınızda, program mükemmel çalışıyor, ancak (ghc --make kullanarak) yürütülebilir derlemek, ben bastığımda girin Uçağım yanıt vermiyor. Bunu Windows 7 64-bit'de derliyorum.

DÜZENLEME: Completed code. Tamamen tamamlanmadı - hala bununla daha fazlasını yapmak istiyorum - ama çalışıyor.

cevap

22

"GHCi'de çalışır, derlendiğinde askıda kalıyor" şeklindeki bir soruya her baktığımda, kendime "iş parçacığı çalışma zamanına ihtiyacın var" diye düşünüyorum.

-threaded ile yeniden derlenmeyi deneyin ve bunun yardımcı olup olmadığını görün.

(GHCi farkını açıklıyor bu bayrak ile derlenmektedir. Sana dişli çalışma zamanını kullanıp bağlı olarak çalışmalarını çağırır nasıl dış fonksiyon bazı fark var hatırlayın ...)

+2

Teşekkür, gibi çalıştı Bir çekicilik - Bir kez, GHC'nin kaynak dosyasını değiştirmediğimden beri çalıştırıcımı yeniden oluşturmadığını fark ettim, sadece derleyici bayrakları: P. –