All Manuals > LispWorks User Guide and Reference Manual > 19 Multiprocessing


19.10 Process properties

A "process property" is a pair of an indicator and a value that is associated with it for a process.

LispWorks has two kinds of process properties: general and private. These two kinds of properties are stored separately, and the association of indicator/value in each property kind is independent of any in the other property kind.

General properties are stored in the process plist, and can be modified from other processes.

Private properties can only be modified by the current process. Private properties are faster to modify, because the modification does not need to be thread-safe.

Otherwise there is little difference between general and private properties.

process-plist and (setf process-plist) are not thread-safe. In LispWorks 5.1 and earlier the only interface to process properties is process-plist, but this does not work well in SMP LispWorks, and so it is deprecated.

There is no parallel to process-plist for the private properties.

The general properties are accessed by: process-property, (setf process-property), remove-process-property, pushnew-to-process-property and remove-from-process-property.

The private properties are accessed by: get-process-private-property (access from other processes), process-private-property, (setf process-private-property), remove-process-private-property, pushnew-to-process-private-property and remove-from-process-private-property.

LispWorks User Guide and Reference Manual - 13 Feb 2015