3
我在haskell平臺上,將GHC 6.12.1作爲apt-get安裝在Debian Squeeze上。我如何從IOError中獲取底層的errno,因爲我需要在不同的線程上創建它最初的位置?如何從haskell中的IOError獲取errno?
我需要這個的原因是因爲我正在實現一個網絡協議,它暴露了電線上的實際errno值。我需要重建它嗎?
我在haskell平臺上,將GHC 6.12.1作爲apt-get安裝在Debian Squeeze上。我如何從IOError中獲取底層的errno,因爲我需要在不同的線程上創建它最初的位置?如何從haskell中的IOError獲取errno?
我需要這個的原因是因爲我正在實現一個網絡協議,它暴露了電線上的實際errno值。我需要重建它嗎?
errno
是GHC中的thread-local。您需要將errno捕獲到一個線程中;然後將值Chan
或其他通信抽象發送到您的監聽線程。
我從IO.try調用中獲得IOError,然後將IOError向下傳遞給TChan。你的意思是我需要用不同的機制替換IO.try,或者在IO.try之後立即得到IOError,我應該查找errno? – regularfry
你應該在抓到異常的同時抓住errno,否則它可能會被清除。 –
太棒了,謝謝。 – regularfry