[commit: base] master: Update parallel IO manager to handle the invalid files in the same way as previous IO manager. (d754719)
Andreas Voellmy
andreas.voellmy at gmail.com
Mon May 6 05:12:23 CEST 2013
Repository : ssh://darcs.haskell.org//srv/darcs/packages/base
On branch : master
https://github.com/ghc/packages-base/commit/d7547198a6f9ecb9d460ec38f7c4bfeb8f5e42f0
>---------------------------------------------------------------
commit d7547198a6f9ecb9d460ec38f7c4bfeb8f5e42f0
Author: Andreas Voellmy <andreas.voellmy at gmail.com>
Date: Sun Mar 17 22:27:49 2013 -0400
Update parallel IO manager to handle the invalid files in the same way as previous IO manager.
This patch affects the IO manager using kqueue. See issue #7773. If the kqueue backend cannot wait for events on a file, it will simply call the registered callback for the file immediately. This is the behavior of the previous IO manager. This is not ideal, but it is an initial step toward dealing with the problem properly. Ideally, we would use a non-kqueue mechanism for waiting on files (select seems most reliable) that cannot be waited on with kqueue.
Foreign/C/Error.hs | 5 ++-
GHC/Event/EPoll.hsc | 26 +++++++++++++---------
GHC/Event/Internal.hs | 18 ++++++++++-----
GHC/Event/KQueue.hsc | 35 +++++++++++++++++++----------
GHC/Event/Manager.hs | 52 +++++++++++++++++++++++++++++++-------------
GHC/Event/Poll.hsc | 7 +++--
GHC/Event/TimerManager.hs | 4 +-
configure.ac | 2 +-
tests/T7773.hs | 9 +++++++
tests/T7773.stdout | 2 +
tests/all.T | 1 +
11 files changed, 108 insertions(+), 53 deletions(-)
Diff suppressed because of size. To see it, use:
git show d7547198a6f9ecb9d460ec38f7c4bfeb8f5e42f0
More information about the ghc-commits
mailing list