
If you used blocking syscalls you'd end up with much worse scaling,
#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): Replying to [comment:10 simonmar]: that's why we have the IO manager, no? Sure. I guess I'm saying that the I/O manager makes some things better and some things worse. This bug is a bit nebulous. I'm not sure there's a good solution without involving the user. However, we should at least think about it as this will come up in more or less every server we write. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8733#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler