process-kill is deprecated. Use process-terminate instead.
process-killkills the process by sending it an interrupt with current-process-kill, which will throw out of whatever it is doing. That means that any code that is executing without interrupts blocked may abort in the middle. It is wise in general to block interrupts around all sensitive places, so that
process-killmay kill the process in a non-sensitive place.
process-killis called while the process is in a no-interrupt context, the killing will actually happen when the process exits that no-interrupt context.
unwind-protect, it may terminate a cleanup in the middle. It is possible to protect against this by doing all cleanups with interrupts disallowed, but that is not easy. Thus
process-killmay be problematic, and should be avoided when possible. Whenever possible, make your processes check some flag that can be set by other threads and exit when the flag is set to some value.
LispWorks User Guide and Reference Manual - 13 Feb 2015