From 40fd20d43fc2431e411554c138cb6e7d15654917 Mon Sep 17 00:00:00 2001 From: "Joseph C. Sible" Date: Mon, 30 Mar 2020 00:10:50 -0400 Subject: Split the RNG so they don't end up equal again after 1 call to next (#6227) --- src/Text/Pandoc/Class/PandocPure.hs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/Text/Pandoc/Class/PandocPure.hs') diff --git a/src/Text/Pandoc/Class/PandocPure.hs b/src/Text/Pandoc/Class/PandocPure.hs index 76862248b..23c941839 100644 --- a/src/Text/Pandoc/Class/PandocPure.hs +++ b/src/Text/Pandoc/Class/PandocPure.hs @@ -40,7 +40,7 @@ import Data.Word (Word8) import System.Directory (doesDirectoryExist, getDirectoryContents) import System.FilePath (()) import System.FilePath.Glob (match, compile) -import System.Random (StdGen, next, mkStdGen) +import System.Random (StdGen, split, mkStdGen) import Text.Pandoc.Class.CommonState (CommonState (..)) import Text.Pandoc.Class.PandocMonad import Text.Pandoc.Error @@ -168,10 +168,10 @@ instance PandocMonad PandocPure where getCurrentTimeZone = getsPureState stTimeZone newStdGen = do - g <- getsPureState stStdGen - let (_, nxtGen) = next g - modifyPureState $ \st -> st { stStdGen = nxtGen } - return g + oldGen <- getsPureState stStdGen + let (genToStore, genToReturn) = split oldGen + modifyPureState $ \st -> st { stStdGen = genToStore } + return genToReturn newUniqueHash = do uniqs <- getsPureState stUniqStore -- cgit v1.2.3