A method and apparatus for ensuring that a process interacting with a failing
process
is notified of the failure of that process. Each process has a unique process identifier
(PID) associated with it. Each process optionally has an affinity list containing
one or more entries, each of which contains the identifier of a process that is
to be notified when the process fails. A process updates the affinity list of a
target process (either itself or another process) by calling an affinity service
of the operating system (OS) kernel, specifying the type of operation (add or delete),
the identifier of the target process, the identifier of the process that is to
notified, and the type of event that is to be generated for the process that is
to be notified. When a process fails, a process termination service of the OS kernel
examines the affinity list of the failing process and, for each entry in the list,
generates an event of the specified type for the process specified as to be notified.