retry 0.7.4.1 → 0.7.4.2
raw patch · 3 files changed
+19/−12 lines, 3 filesdep ~HUnitPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: HUnit
API changes (from Hackage documentation)
- Control.Retry: getRetryPolicyM :: RetryPolicyM m -> RetryStatus -> m (Maybe Int)
- Control.Retry: instance Constructor C1_0RetryStatus
- Control.Retry: instance Datatype D1RetryStatus
- Control.Retry: instance Eq RetryStatus
- Control.Retry: instance Generic RetryStatus
- Control.Retry: instance Monad m => Default (RetryPolicyM m)
- Control.Retry: instance Monad m => Monoid (RetryPolicyM m)
- Control.Retry: instance Read RetryStatus
- Control.Retry: instance Selector S1_0_0RetryStatus
- Control.Retry: instance Selector S1_0_1RetryStatus
- Control.Retry: instance Selector S1_0_2RetryStatus
- Control.Retry: instance Show RetryStatus
- Control.Retry: rsCumulativeDelay :: RetryStatus -> !Int
- Control.Retry: rsIterNumber :: RetryStatus -> !Int
- Control.Retry: rsPreviousDelay :: RetryStatus -> !(Maybe Int)
+ Control.Retry: [getRetryPolicyM] :: RetryPolicyM m -> RetryStatus -> m (Maybe Int)
+ Control.Retry: [rsCumulativeDelay] :: RetryStatus -> !Int
+ Control.Retry: [rsIterNumber] :: RetryStatus -> !Int
+ Control.Retry: [rsPreviousDelay] :: RetryStatus -> !(Maybe Int)
+ Control.Retry: instance GHC.Base.Monad m => Data.Default.Class.Default (Control.Retry.RetryPolicyM m)
+ Control.Retry: instance GHC.Base.Monad m => GHC.Base.Monoid (Control.Retry.RetryPolicyM m)
+ Control.Retry: instance GHC.Classes.Eq Control.Retry.RetryStatus
+ Control.Retry: instance GHC.Generics.Constructor Control.Retry.C1_0RetryStatus
+ Control.Retry: instance GHC.Generics.Datatype Control.Retry.D1RetryStatus
+ Control.Retry: instance GHC.Generics.Generic Control.Retry.RetryStatus
+ Control.Retry: instance GHC.Generics.Selector Control.Retry.S1_0_0RetryStatus
+ Control.Retry: instance GHC.Generics.Selector Control.Retry.S1_0_1RetryStatus
+ Control.Retry: instance GHC.Generics.Selector Control.Retry.S1_0_2RetryStatus
+ Control.Retry: instance GHC.Read.Read Control.Retry.RetryStatus
+ Control.Retry: instance GHC.Show.Show Control.Retry.RetryStatus
Files
- changelog.md +3/−0
- retry.cabal +6/−2
- src/Control/Retry.hs +10/−10
changelog.md view
@@ -1,3 +1,6 @@+0.7.4.2+* Loosen HUnit dependency for tests.+ 0.7.4.1 * Loosen QuickCheck dependency for tests.
retry.cabal view
@@ -14,7 +14,7 @@ case we should hang back for a bit and retry the query instead of simply raising an exception. -version: 0.7.4.1+version: 0.7.4.2 synopsis: Retry combinators for monadic actions that may fail license: BSD3 license-file: LICENSE@@ -55,9 +55,13 @@ , random , time , QuickCheck >= 2.7 && < 2.10- , HUnit >= 1.2.5.2 && < 1.4+ , HUnit >= 1.2.5.2 && < 1.6 , hspec >= 1.9 , stm , ghc-prim , mtl default-language: Haskell2010++source-repository head+ type: git+ location: git://github.com/Soostone/retry.git
src/Control/Retry.hs view
@@ -201,15 +201,15 @@ ------------------------------------------------------------------------------- -- | Apply policy on status to see what the decision would be. -- 'Nothing' implies no retry, 'Just' returns updated status.-applyPolicy - :: Monad m - => RetryPolicyM m - -> RetryStatus +applyPolicy+ :: Monad m+ => RetryPolicyM m+ -> RetryStatus -> m (Maybe RetryStatus) applyPolicy (RetryPolicyM policy) s = do res <- policy s case res of- Just delay -> return $! Just $! RetryStatus + Just delay -> return $! Just $! RetryStatus { rsIterNumber = rsIterNumber s + 1 , rsCumulativeDelay = rsCumulativeDelay s `boundedPlus` delay , rsPreviousDelay = Just delay }@@ -220,9 +220,9 @@ -- | Apply policy and delay by its amount if it results in a retry. -- Return updated status. applyAndDelay- :: MonadIO m - => RetryPolicyM m - -> RetryStatus + :: MonadIO m+ => RetryPolicyM m+ -> RetryStatus -> m (Maybe RetryStatus) applyAndDelay policy s = do chk <- applyPolicy policy s@@ -234,8 +234,8 @@ return (Just rs) Nothing -> return Nothing - + ------------------------------------------------------------------------------- -- | Helper for making simplified policies that don't use the monadic -- context.@@ -504,7 +504,7 @@ | Just e' <- fromException e = do chk <- h e' case chk of- True -> do + True -> do res <- applyPolicy policy s case res of Just rs -> do