(index ("mailbox-timeout-condition?" 0) ("mailbox-timeout-exception?" 718) ("make-mailbox" 876) ("mailbox?" 1099) ("mailbox-name" 1215) ("mailbox-empty?" 1337) ("mailbox-count" 1562) ("mailbox-waiting?" 1713) ("mailbox-waiters" 1855) ("mailbox-send!" 2008) ("mailbox-receive!" 2343) ("mailbox-wait!" 3054) ("mailbox-push-back!" 3525) ("mailbox-push-back-list!" 3690) ("make-mailbox-cursor" 3920) ("mailbox-cursor?" 4137) ("mailbox-cursor-mailbox" 4274) ("mailbox-cursor-next" 4448) ("mailbox-cursor-rewind" 5090) ("mailbox-cursor-extract-and-rewind" 5246) ("mailbox-cursor-rewound?" 5627) ("mailbox-cursor-unwound?" 5819))
(def (sig (procedure "(mailbox-timeout-condition? OBJ) -> boolean" (id mailbox-timeout-condition?))) (p "Is the " (tt "OBJ") " a mailbox timeout condition?") (p "A mailbox timeout condition is a composite condition of " (tt "'exn") ", " (tt "'mailbox") ", and " (tt "'timeout") " conditions.") (p "The " (tt "'exn") " condition has properties of " (tt "'location") ", " (tt "'message") ", " (tt "'arguments") ", and " (tt "'call-chain") ".") (p "The " (tt "'mailbox") " condition has properties of " (tt "'box") ".") (p "The " (tt "'timeout") " condition has properties of " (tt "'time") ", and " (tt "'value") ".") (p "The addition of the timeout properties as " (tt "'exn") " " (tt "'arguments") " is deprecated."))
(def (sig (procedure "(mailbox-timeout-exception? OBJ) -> boolean" (id mailbox-timeout-exception?))) (p "Synonym of " (tt "mailbox-timeout-condition?") "."))
(def (sig (procedure "(make-mailbox [NAME]) -> mailbox" (id make-mailbox))) (p "Returns a new mailbox object.") (dl (dt (tt "NAME")) (dd (tt "*") " ; default " (tt "(gensym 'mailbox)"))) (ul (li "identify this mailbox.")))
(def (sig (procedure "(mailbox? OBJ) -> boolean" (id mailbox?))) (p "Is the " (tt "OBJ") " a " (tt "mailbox") "?"))
(def (sig (procedure "(mailbox-name MAILBOX) -> *" (id mailbox-name))) (p "Returns the name of the " (tt "MAILBOX") "."))
(def (sig (procedure "(mailbox-empty? MAILBOX) -> boolean" (id mailbox-empty?))) (p "If there are no queued objects in the " (tt "MAILBOX") ", then this procedure returns " (tt "#t") ", otherwise it returns " (tt "#f") "."))
(def (sig (procedure "(mailbox-count MAILBOX) -> integer" (id mailbox-count))) (p "Returns the number of queued objects for the " (tt "MAILBOX") "."))
(def (sig (procedure "(mailbox-waiting? MAILBOX) -> boolean" (id mailbox-waiting?))) (p "Is any thread waiting for the " (tt "MAILBOX") "?"))
(def (sig (procedure "(mailbox-waiters MAILBOX) -> list" (id mailbox-waiters))) (p "Returns a list of the threads waiting for the " (tt "MAILBOX") "."))
(def (sig (procedure "(mailbox-send! MAILBOX OBJ)" (id mailbox-send!))) (p "Queues the data object " (tt "OBJ") ". If any threads exist that are waiting for input on " (tt "MAILBOX") ", the execution of the first one will be resumed. The data will be read out of a mailbox in the same order in which is written in (in FIFO manner)."))
(def (sig (procedure "(mailbox-receive! MAILBOX [TIMEOUT [DEFAULT]]) -> *" (id mailbox-receive!))) (p "If there is any data in the " (tt "MAILBOX") ", then the first object will be removed and returned as the result. If the mailbox is currently empty, the current thread will suspended until data is available.") (p (tt "TIMEOUT") " is a " (link "http://srfi.schemers.org/srfi-18/srfi-18.html" "SRFI-18") " " (tt "time") " object or the real number of seconds.") (p "Should " (tt "TIMEOUT") " be specified and occur the " (tt "DEFAULT") ", if supplied, will be returned. Otherwise a mailbox timeout exception will be signaled for the calling thread. The " (tt "DEFAULT") " value cannot be " (tt "(void)") "."))
(def (sig (procedure "(mailbox-wait! MAILBOX [TIMEOUT])" (id mailbox-wait!))) (p "Similar to " (tt "mailbox-receive!") ", but does not remove the received result from the queue of pending data.") (p (tt "TIMEOUT") " is a " (link "http://srfi.schemers.org/srfi-18/srfi-18.html" "SRFI-18") " " (tt "time") " object or the real number of seconds.") (p "Should " (tt "TIMEOUT") " be specified and occur a mailbox timeout exception will be signaled for the calling thread."))
(def (sig (procedure "(mailbox-push-back! MAILBOX OBJ)" (id mailbox-push-back!))) (p "Pushes the data object " (tt "OBJ") " into the first position of a mailbox."))
(def (sig (procedure "(mailbox-push-back-list! MAILBOX OBJS)" (id mailbox-push-back-list!))) (p "Pushes the list of objects " (tt "OBJS") " back into the mailbox, so that " (tt "(car OBJS)") " becomes the next receivable item."))
(def (sig (procedure "(make-mailbox-cursor MAILBOX) -> mailbox-cursor" (id make-mailbox-cursor))) (p "Returns an object which can enumerate a mailbox.") (p "Multiple cursors can scan, and mutate, the same mailbox."))
(def (sig (procedure "(mailbox-cursor? OBJ) -> boolean" (id mailbox-cursor?))) (p "Is the " (tt "OBJ") " a " (tt "mailbox-cursor") "?"))
(def (sig (procedure "(mailbox-cursor-mailbox MAILBOX-CURSOR) -> mailbox" (id mailbox-cursor-mailbox))) (p "Returns the mailbox object associated with the mailbox cursor."))
(def (sig (procedure "(mailbox-cursor-next MAILBOX-CURSOR [TIMEOUT [DEFAULT]]) -> *" (id mailbox-cursor-next))) (p "Returns the next object in the mailbox queue, waiting if necessary.") (p "The mailbox queue is scanned from oldest to newest.") (p (tt "TIMEOUT") " is a " (link "http://srfi.schemers.org/srfi-18/srfi-18.html" "SRFI-18") " " (tt "time") " object or the real number of seconds.") (p "Should " (tt "TIMEOUT") " be specified and occur the " (tt "DEFAULT") ", if supplied, will be returned. Otherwise a mailbox timeout exception will be signaled for the calling thread. The " (tt "DEFAULT") " value cannot be " (tt "(void)") "."))
(def (sig (procedure "(mailbox-cursor-rewind MAILBOX-CURSOR)" (id mailbox-cursor-rewind))) (p "Position the cursor at the oldest message in the mailbox."))
(def (sig (procedure "(mailbox-cursor-extract-and-rewind MAILBOX-CURSOR)" (id mailbox-cursor-extract-and-rewind))) (p "Remove from the associated mailbox queue the last object returned by " (tt "mailbox-cursor-next") " and position the cursor at the oldest message in the mailbox.") (p "The extraction is not performed without a previous call to " (tt "mailbox-cursor-next") "."))
(def (sig (procedure "(mailbox-cursor-rewound? MAILBOX-CURSOR) -> boolean" (id mailbox-cursor-rewound?))) (p "Is the " (tt "MAILBOX-CURSOR") " positioned at the start of the mailbox queue?"))
(def (sig (procedure "(mailbox-cursor-unwound? MAILBOX-CURSOR) -> boolean" (id mailbox-cursor-unwound?))) (p "Is the " (tt "MAILBOX-CURSOR") " positioned at the end of the mailbox queue?"))
