Module MakeSingle.Queue

include QUEUE with type 'a t := 'a queue t
val push_request_and_wait : 'q queue t -> ('a, 'request_error) Request.t -> ('a, 'request_error message_error) Stdlib.result Lwt.t

push_request_and_wait worker request sends the request to the worker and waits for its completion. If the worker queue is closed, then it returns Error Closed. If the buffer is a bounded queue and the underlying queue is full, the call is blocking.

val push_request : 'q queue t -> ('a, 'request_error) Request.t -> bool Lwt.t

push_request worker request sends the request to the worker. The promise returned is true if the request was pushed successfuly or false if the worker queue is closed. If the buffer is a bounded queue and the underlying queue is full, the call is blocking.

val pending_requests : 'a queue t -> (Mavryk_base.Time.System.t * Request.view) list
val pending_requests_length : 'a queue t -> int
val push_request_now : infinite queue t -> ('a, 'request_error) Request.t -> unit

Adds a message to the queue immediately.