123456789101112131415161718192021222324252627282930moduletypeSystem=sig(** Signature for a module that {!Picos_lwt.run} requires for interoperating
with the system that {!Lwt} runs on. *)valsleep:float->unitLwt.t(** [sleep seconds] returns a cancelable promise that resolves after the given
number of seconds. *)typetrigger(** Represents a semi thread-safe signaling mechanism. *)valtrigger:unit->trigger(** [trigger ()] returns a new thread-safe, single use signaling mechanism.
⚠️ This may only be called on the main thread on which {!Lwt} runs. *)valsignal:trigger->unit(** [signal trigger] resolves the promise that {{!await} [await trigger]}
returns.
ℹ️ It must be safe to call [signal] from any thread or domain. As a
special case this need not be thread-safe in case the system only allows a
single thread. *)valawait:trigger->unitLwt.t(** [await trigger] returns a promise thet resolves, on the main thread, after
{{!signal} [signal trigger]} has been called.
⚠️ This may only be called on the main thread on which {!Lwt} runs. *)end