retry

retry :: STM a
base GHC.Conc.Sync, base GHC.Conc, stm Control.Monad.STM
Retry execution of the current memory transaction because it has seen values in TVars which mean that it should not continue (e.g. the TVars represent a shared buffer that is now empty). The implementation may block the thread until one of the TVars that it has read from has been udpated. (GHC only)
package retry
package
This package exposes combinators that can wrap arbitrary monadic actions. They run the action and potentially retry running it with some configurable delay for a configurable number of times. The purpose is to make it easier to work with IO and especially network IO actions that often experience temporary failure and warrant retrying of the original action. For example, a database query may time out for a while, in which case we should hang back for a bit and retry the query instead of simply raising an exception. Version 0.3.0.0
Retry :: ResponseNextStep
HTTP Network.HTTP.Base
throwErrnoIfMinus1Retry :: Num a => String -> IO a -> IO a
base Foreign.C.Error
Throw an IOError corresponding to the current value of getErrno if the IO action returns a result of -1, but retries in case of an interrupted operation.
throwErrnoIfMinus1Retry_ :: Num a => String -> IO a -> IO ()
base Foreign.C.Error
as throwErrnoIfMinus1, but discards the result.
throwErrnoIfMinus1RetryMayBlock :: Num a => String -> IO a -> IO b -> IO a
base Foreign.C.Error
as throwErrnoIfMinus1Retry, but checks for operations that would block.
throwErrnoIfMinus1RetryMayBlock_ :: Num a => String -> IO a -> IO b -> IO ()
base Foreign.C.Error
as throwErrnoIfMinus1RetryMayBlock, but discards the result.
throwErrnoIfNullRetry :: String -> IO (Ptr a) -> IO (Ptr a)
base Foreign.C.Error
Throw an IOError corresponding to the current value of getErrno if the IO action returns nullPtr, but retry in case of an interrupted operation.
throwErrnoIfNullRetryMayBlock :: String -> IO (Ptr a) -> IO b -> IO (Ptr a)
base Foreign.C.Error
as throwErrnoIfNullRetry, but checks for operations that would block.
throwErrnoIfRetry :: (a -> Bool) -> String -> IO a -> IO a
base Foreign.C.Error
as throwErrnoIf, but retry the IO action when it yields the error code eINTR - this amounts to the standard retry loop for interrupted POSIX system calls.
throwErrnoIfRetry_ :: (a -> Bool) -> String -> IO a -> IO ()
base Foreign.C.Error
as throwErrnoIfRetry, but discards the result.
throwErrnoIfRetryMayBlock :: (a -> Bool) -> String -> IO a -> IO b -> IO a
base Foreign.C.Error
as throwErrnoIfRetry, but additionally if the operation yields the error code eAGAIN or eWOULDBLOCK, an alternative action is executed before retrying.
throwErrnoIfRetryMayBlock_ :: (a -> Bool) -> String -> IO a -> IO b -> IO ()
base Foreign.C.Error
as throwErrnoIfRetryMayBlock, but discards the result.
HdrRetryAfter :: HeaderName
HTTP Network.HTTP.Headers
oFFSET_StgCatchRetryFrame_alt_code :: Int
base GHC.Constants
oFFSET_StgCatchRetryFrame_first_code :: Int
base GHC.Constants
oFFSET_StgCatchRetryFrame_running_alt_code :: Int
base GHC.Constants
sIZEOF_StgCatchRetryFrame_NoHdr :: Int
base GHC.Constants
throwErrnoPathIfMinus1Retry :: (Eq a, Num a) => String -> FilePath -> IO a -> IO a
unix System.Posix.Error
throwErrnoPathIfMinus1Retry :: (Eq a, Num a) => String -> RawFilePath -> IO a -> IO a
unix System.Posix.ByteString.FilePath
throwErrnoPathIfMinus1Retry_ :: (Eq a, Num a) => String -> FilePath -> IO a -> IO ()
unix System.Posix.Error
throwErrnoPathIfMinus1Retry_ :: (Eq a, Num a) => String -> RawFilePath -> IO a -> IO ()
unix System.Posix.ByteString.FilePath
throwErrnoPathIfNullRetry :: String -> FilePath -> IO (Ptr a) -> IO (Ptr a)
unix System.Posix.Error
throwErrnoPathIfNullRetry :: String -> RawFilePath -> IO (Ptr a) -> IO (Ptr a)
unix System.Posix.ByteString.FilePath
throwErrnoPathIfRetry :: (a -> Bool) -> String -> FilePath -> IO a -> IO a
unix System.Posix.Error
throwErrnoPathIfRetry :: (a -> Bool) -> String -> RawFilePath -> IO a -> IO a
unix System.Posix.ByteString.FilePath
throwSocketErrorIfMinus1Retry :: (Eq a, Num a) => String -> IO a -> IO a
network Network.Socket.Internal
Throw an IOError corresponding to the current socket error if the IO action returns a result of -1, but retries in case of an interrupted operation.
throwSocketErrorIfMinus1RetryMayBlock :: (Eq a, Num a) => String -> IO b -> IO a -> IO a
network Network.Socket.Internal
Throw an IOError corresponding to the current socket error if the IO action returns a result of -1, but retries in case of an interrupted operation. Checks for operations that would block and executes an alternative action before retrying in that case.