Mavryk_stdlib.Lwt_dropboxA 'dropbox' with a single element.
val create : unit -> 'a tCreate an empty dropbox.
val put : 'a t -> 'a -> unitput t e puts the element e inside the dropbox t. If the dropbox already held an element, the old element is discarded and replaced by the new one.
val take : 'a t -> 'a Lwt.ttake t is a promise that resolves as soon as an element is held by t. The element is removed from t when the promise resolves.
If t already holds an element when take t is called, the promise resolves immediately. Otherwise, the promise resolves when an element is put there.
val take_with_timeout : unit Lwt.t -> 'a t -> 'a option Lwt.ttake_with_timeout timeout t behaves like take t except that it returns None if timeout resolves before an element is put.
Note that timeout is canceled (i.e., fails with Canceled) if an element is put in time (or if one is already present).
val peek : 'a t -> 'a optionpeek t is Some e if t holds e and None if t does not hold any element.
val close : 'a t -> unitclose t closes the dropbox t. It terminates all the waiting reader with the exception Closed. All further read or write will also immediately fail with Closed, except if the dropbox is not empty when close is called. In that case, a single (and last) take will succeed.