> Since we're already in `IO`, just to be really sure we might want to
> use `evaluate` to ensure that there are really no thunks, something
> like
> 
> new_data <- ...
> new_data_forced <- evaluate . force $ new_data
> return ...

commit 975ee24fc833ab715751eb3e5a01be93026a41c1
Author: Klaus Aehlig <aeh...@google.com>
Date:   Tue Mar 3 17:30:59 2015 +0100

    Interdiff

diff --git a/src/Ganeti/Monitoring/Server.hs b/src/Ganeti/Monitoring/Server.hs
index def1e72..e972b62 100644
--- a/src/Ganeti/Monitoring/Server.hs
+++ b/src/Ganeti/Monitoring/Server.hs
@@ -252,7 +252,8 @@ collect m collector =
       let name = dName collector
           existing = Map.lookup name m
       new_data <- update existing
-      return $ Map.insert name (force new_data) m
+      _ <- evaluate $ force new_data
+      return $ Map.insert name new_data m
 
 -- | Invokes collect for each data collector.
 collection :: CollectorMap -> IO CollectorMap

-- 
Klaus Aehlig
Google Germany GmbH, Dienerstr. 12, 80331 Muenchen
Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschaeftsfuehrer: Graham Law, Christine Elizabeth Flores

Reply via email to