
In contrast, in the pre-7.8 IO manager, the IO manager thread always did a blocking epoll call, so it could use the earliest timeout as the timeout for the epoll call. It would then have to wait for at most one Haskell
#8733: I/O manager causes unnecessary syscalls in send/recv loops --------------------------------------------+------------------------------ Reporter: tibbe | Owner: Type: bug | Status: new Priority: normal | Milestone: 7.10.1 Component: Runtime System | Version: 7.6.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime performance bug | Unknown/Multiple Test Case: | Difficulty: Unknown Blocking: | Blocked By: | Related Tickets: --------------------------------------------+------------------------------ Comment (by tibbe): thread to finish after the foreign epoll call returns in order to grab the HEC and dispatch callbacks. We don't guarantee to wake the thread up exactly after N milliseconds, so unless the new I/O manager seriously delays wake-ups, I'd prefer it if we could skip having a completely separate timeout manager. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8733#comment:19 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler