LispWorks User Guide and Reference Manual > 15 Multiprocessing > 15.2 The process programming interface > 15.2.3 Process Priorities

NextPrevUpTopContentsIndex

15.2.3.2 Process priorities in non-SMP LispWorks

If there is a runnable process with priority P, then no processes with priority less than P will run. When there are runnable processes with equal priority, they will be scheduled in a round-robin manner.

If a process with priority P is running and a blocked process with priority greater than P becomes runnable, the second process will run when the scheduler is next invoked (either explicity or at the next preemption tick).

To find the priority of a process, use process-priority. This can be changed using change-process-priority.

(mp:change-process-priority proc-1 10)

Another way to specify the priority is to create the process with process-run-function, passing the keyword :priority :

(list
 (mp:process-run-function 
  "SORTER-DOT" '(:priority 10) #'sorter #\.)
 (mp:process-run-function 
  "SORTER-DASH" () #'sorter #\-))

LispWorks User Guide and Reference Manual - 22 Dec 2009

NextPrevUpTopContentsIndex