module CCBlockingQueue:sig
..end
This queue has a limited size. Pushing a value on the queue when it
is full will block.
Since 0.16
type 'a
t
'a
val create : int -> 'a t
n
. Using n=max_int
amounts to using
an infinite queue (2^61 items is a lot to fit in memory); using n=1
amounts to using a box with 0 or 1 elements inside.Invalid_argument
if n < 1
val push : 'a t -> 'a -> unit
push q x
pushes x
into q
, blocking if the queue is fullval take : 'a t -> 'a
val push_list : 'a t -> 'a list -> unit
val take_list : 'a t -> int -> 'a list
take_list n q
takes n
elements out of q
val try_take : 'a t -> 'a option
None
otherwiseval try_push : 'a t -> 'a -> bool
try_push q x
pushes x
into q
if q
is not full, in which
case it returns true
.
If it fails because q
is full, it returns false
val peek : 'a t -> 'a option
peek q
returns Some x
if x
is the first element of q
,
otherwise it returns None
val size : 'a t -> int
val capacity : 'a t -> int