Create and use an unlocked-queue object.
make-unlocked-queue &key size name => unlocked-queue
unlocked-queue-read unlocked-queue => object
unlocked-queue-peek unlocked-queue => object
unlocked-queue-ready unlocked-queue => result
unlocked-queue-send unlocked-queue object => object
The function make-unlocked-queue
creates a new, empty unlocked-queue object.
The functions unlocked-queue-read
, unlocked-queue-peek
, unlocked-queue-ready
, unlocked-queue-send
, unlocked-queue-count
and unlocked-queue-size
use an unlocked-queue object.
size is a hint of the maximum number of objects that are expected to be in the queue simultaneously. The queue is extended as needed, so size does not have to be a good guess.
name is used when printing the unlocked-queue and so it is useful for debugging. name is not used otherwise.
unlocked-queue-read
checks whether there is anything in the queue, and if so removes the first object in the queue and returns it. Otherwise it returns nil
.
unlocked-queue-peek
checks whether there is anything in the queue, and if so returns the first object in the queue without modifying the queue. Otherwise it returns nil
.
unlocked-queue-ready
returns a boolean specifying whether there is anything in the queue.
unlocked-queue-send
adds object to the end of the queue, extending the queue if needed. It returns its second argument.
unlocked-queue-count
returns the number of objects in the queue.
unlocked-queue-size
returns the current size of the queue. Note that it is increased when needed by unlocked-queue-send
LispWorks User Guide and Reference Manual - 20 Sep 2017