簡體   English   中英

`threadDelay(maxBound :: Int)`是否會導致GHC錯誤或什么?

[英]Does `threadDelay (maxBound :: Int)` trip a GHC bug or what?

我希望我的程序基本上永遠鎖定,我的第一個想法是:

threadDelay (maxBound :: Int)

這給了一些虛假的警告:

Prelude> import Control.Concurrent
Prelude Control.Concurrent> threadDelay 10
Prelude Control.Concurrent> threadDelay (maxBound :: Int)
<interactive>: c_poll: invalid argument (Invalid argument)
<interactive>: ioManagerWakeup: write: Bad file descriptor

我做錯了還是做了GHC?

這似乎是一個已知的GHC錯誤 ,取得了一些進展(雖然並非所有配置似乎都已修復)。

在此期間,您可以forever (threadDelay (2^20))使用forever (threadDelay (2^20))或類似的解決方法; 2^20應該遠離maxBound以避免這個錯誤,並且在你的系統上每秒喚醒一次幾個周期應該很容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM