packages feed

hedgehog-extras-0.3.0.1: src/Hedgehog/Extras/Test/Concurrent.hs

module Hedgehog.Extras.Test.Concurrent
  ( threadDelay
  ) where

import           Control.Monad.IO.Class (MonadIO)
import           Data.Function (($), (.))
import           Data.Int
import           Hedgehog (MonadTest)

import qualified Control.Concurrent as IO
import qualified GHC.Stack as GHC
import qualified Hedgehog as H

-- Delay the thread by 'n' milliseconds.
threadDelay :: (MonadTest m, MonadIO m) => Int -> m ()
threadDelay n = GHC.withFrozenCallStack . H.evalIO $ IO.threadDelay n