Timeouts
To use the bindings from this module:
(import :std/misc/timeout)
make-timeout
(make-timeout t [def = absent-obj]) -> time object | def | error
t := real number in seconds | time object | #f (false value)
def := default value returned in case t is #f
Creates a time object representing a time point relative to the current time.
These time objects are used as timeout input parameters for synchronization
primitives in modules such as :gerbil/gambit/threads
or :std/misc/channel
:
(thread-sleep! timeout)
(thread-join! thread [timeout [timeout-val]])
(mutex-lock! mutex [timeout [thread]])
(mutex-unlock! mutex [condition-variable [timeout]])
(channel-put channel value [time-object])
(channel-get channel [time-object [default]])
make-timeout
expects t to be exact or inexact real number in seconds; a time
point object satisfying time?
, in which case it returns t itself; or #f
,
which is often the case for gerbil's internal usage of make-timeout
, returning
the optional default parameter def instead.
Signals an error when t is something other than a real number, a time object or #f
.
Examples:
> (import :gerbil/gambit/threads)
> (thread-sleep! (make-timeout 10))
; no output, but will take ten seconds to complete