[commit: base] : Added missing wakeup in GHC.Event.Manager.closeFd_. (3799788)

Johan Tibell johan.tibell at gmail.com
Tue Feb 12 07:51:32 CET 2013


Repository : ssh://darcs.haskell.org//srv/darcs/packages/base

On branch  : 

http://hackage.haskell.org/trac/ghc/changeset/3799788e21a35dc92f40c0a5b952f2f683c3ded1

>---------------------------------------------------------------

commit 3799788e21a35dc92f40c0a5b952f2f683c3ded1
Author: Andreas Voellmy <andreas.voellmy at gmail.com>
Date:   Thu Jan 3 18:20:53 2013 +0100

    Added missing wakeup in GHC.Event.Manager.closeFd_.
    
    This missing wakeup may have affected the IO manager when used with the poll backend.

>---------------------------------------------------------------

 GHC/Event/Manager.hs |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/GHC/Event/Manager.hs b/GHC/Event/Manager.hs
index cb1eace..74152dd 100644
--- a/GHC/Event/Manager.hs
+++ b/GHC/Event/Manager.hs
@@ -363,6 +363,7 @@ closeFd_ mgr oldMap fd = do
     (Just fds, !newMap) -> do
       let oldEvs = eventsOf fds
       I.modifyFd (emBackend mgr) fd oldEvs mempty
+      when (oldEvs /= mempty) $ wakeManager mgr
       forM_ fds $ \(FdData reg ev cb) -> cb reg (ev `mappend` evtClose)
       return newMap
 ------------------------------------------------------------------------





More information about the ghc-commits mailing list