A name for the new process.
Keywords specifying properties of the new process.
A function to apply.
Arguments to pass to function .
This function creates a new Lisp process with name name. Other properties of process may be specified in keyword/value pairs in keywords :
A
fixnum
representing the priority for the process. If
:priority
is not supplied, the process priority becomes the value of the variable
*default-process-priority*
.
A mailbox object, a string,
t
or
nil
, used to initialize the
process-mailbox
of
process
.
True values specify that
process
should have a mailbox. A mailbox object is used as-is; a string is used as the name of a new mailbox; and
t
causes it to create a mailbox with the same name as
process
, that is,
name
.
Note that both process-send and process-wait-for-event force the relevant process to have a mailbox.
The new process is preset to apply
function
to
arguments
and runs in parallel, while
process-run-function
returns immediately.
CL-USER 253 > (defvar *stream* *standard-output*)
*STREAM*
CL-USER 254 > (mp:process-run-function
"My process"
'(:priority 42)
#'(lambda (x)
(loop for i below x
do (and (print i *stream*)
(sleep 1))
finally
(print (mp:process-priority
mp:*current-process*)
*stream*)))
3)
#<MP:PROCESS Name "My process" Priority 850000 State "Running">
0
1
2
42
CL-USER 255 >