avoid a space leak building up in the "prodding" IORef (part of #2992)
authorSimon Marlow <marlowsd@gmail.com>
Wed, 11 Mar 2009 09:39:38 +0000 (09:39 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 11 Mar 2009 09:39:38 +0000 (09:39 +0000)
GHC/Conc.lhs

index 1351125..8ed61fe 100644 (file)
@@ -955,7 +955,8 @@ service_loop wakeup old_delays = do
 
 service_cont :: HANDLE -> [DelayReq] -> IO ()
 service_cont wakeup delays = do
-  atomicModifyIORef prodding (\_ -> (False,False))
+  r <- atomicModifyIORef prodding (\_ -> (False,False))
+  r `seq` return () -- avoid space leak
   service_loop wakeup delays
 
 -- must agree with rts/win32/ThrIOManager.c