> 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