Module Muthr_retry


module Muthr_retry: sig .. end
Retry combinators

exception Failed
To be raised by an operation that definitely fails (don't want to be retried)
val retry : int ->
(('a option -> Muthr.t) -> Muthr.t) ->
(unit -> Muthr.t) -> ('a -> Muthr.t) -> Muthr.t
retry n c kfail k retries c at most n times. c must pass its continuation Some r for result r, None for temporary failure, or raise Failed for definitive failure.

Very experimental operations


val retryex : exn ->
int -> (('a option -> Muthr.t) -> Muthr.t) -> ('a -> Muthr.t) -> Muthr.t
val retry_forever : (('a option -> Muthr.t) -> Muthr.t) ->
(unit -> Muthr.t) -> ('a -> Muthr.t) -> Muthr.t
val retry_tm : float ->
(('a option -> Muthr.t) -> Muthr.t) ->
(unit -> Muthr.t) -> ('a -> Muthr.t) -> Muthr.t
val retry_n_tm : int ->
float ->
(('a -> Muthr.t) -> Muthr.t) ->
(unit -> Muthr.t) -> ('a -> Muthr.t) -> Muthr.t
val retry_n_tm_backoff : int ->
float ->
float ->
(('a -> Muthr.t) -> Muthr.t) ->
(unit -> Muthr.t) -> ('a -> Muthr.t) -> Muthr.t
val retry_list : 'a list ->
('a -> ('b option -> Muthr.t) -> Muthr.t) ->
(unit -> Muthr.t) -> ('b -> Muthr.t) -> Muthr.t
retry_list l c kfail k retries c with each each value in l.
val retry_list_tm : 'a list ->
float ->
('a -> ('b option -> Muthr.t) -> Muthr.t) ->
(unit -> Muthr.t) -> ('b -> Muthr.t) -> Muthr.t
Retry for a list, with a tm timeout each time