package lwt
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=99229f444fd9610eff8e7d8f4a2c76c8d052a20732ac1d9db3ca282c6821fad8
md5=04e5ce110c3786199171770c47d968da
doc/lwt.unix/Lwt_timeout/index.html
Module Lwt_timeout
Cancelable timeouts.
val create : int -> (unit -> unit) -> tLwt_timeout.create n f creates a new timeout object with duration n seconds. f is the action, a function to be called once the timeout expires. f should not raise exceptions.
The timeout is not started until Lwt_timeout.start is called on it.
val start : t -> unitStarts the given timeout.
Starting a timeout that has already been started has the same effect as stopping it, and then restarting it with its original duration. So, suppose you have timeout with a duration of three seconds, which was started two seconds ago. The next call to its action is scheduled for one second in the future. Calling Lwt_timeout.start timeout at this point cancels this upcoming action call, and schedules a call three seconds from now.
val stop : t -> unitStops (cancels) the given timeout.
val change : t -> int -> unitChanges the duration of the given timeout.
If the timeout has already been started, it is stopped, and restarted with its new duration. This is similar to how Lwt_timeout.start works on a timeout that has already been started.
Lwt_timeout.set_exn_handler f sets the handler to be used for exceptions raised by timeout actions. Recall that actions are not allowed to raise exceptions. If they do raise an exception exn despite this, f exn is called.
The default behavior of f exn, set by Lwt_timeout on program startup, is to pass exn to !Lwt.async_exception_hook. The default behavior of that is to terminate the process.