Skip to content

Constant overhead of threadDelay

On x86/MacOS 10.4.10, the function Control.Concurrenct.threadDelay has a constant overhead of 100-200ms. Consequently, the observed delay is 100-200ms longer than the specified delay and 100-200ms is the minimum delay that can be realised.

When run under ktrace, the Haskell process spends the time in a larger number of poll-like select() calls. I observed around 2800 select() calls for threadDelay 1.

Trac metadata
Trac field Value
Version 6.7
Type Bug
TypeOfFailure OtherFailure
Priority low
Resolution Unresolved
Component libraries/base
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information