Adds an object to a mailbox if it is not full
A string or
mailbox-send-limited adds object to mailbox in the same way as mailbox-send, except in the case where mailbox is full.
Otherwise, if mailbox is full and has a size not less than limit then
mailbox-send-limited waits until mailbox becomes not full before adding object. While waiting,
mailbox-send-limited will return without adding object to mailbox if timeout is non-nil and timeout seconds has elapsed or if wait-function is non-nil and applying wait-function to args returns true.
mailbox-send-limited only prevents the mailbox from expanding to more than limit: if is already bigger than the limit, and there is still a space in it,
mailbox-send-limited add the object to the mailbox even if that means that the mailbox has more objects than limit. As long as all of the sending calls on a mailbox are limited, the mailbox may grow until it reaches the largest limit, and if it was made with the
:size argument equal or larger than the largest limit, it will never grow. However, if mailbox-send is called then that may enlarge it.
mailbox-send-limited waits like process-wait-with-timeout. As a result, there may be some latency between the time the mailbox becomes non-full and the waiting returns, because it depends on the scheduler. The wait-reason, timeout, wait-function and args are analogous to the arguments of process-wait-with-timeout. wait-function is applied within the wait-function that
mailbox-send-limited uses, so has the same limitations as the wait-function of process-wait-with-timeout.
LispWorks User Guide and Reference Manual - 20 Sep 2017