Прокси - это рабочий процесс, который исполняется системным
вызовом semop() с флагом SEM_UNDO. Когда worker
исполняет такую функцию, он не прекращает свого выполнения, а записывает
сетевой адрес и идентификатор процесса удаленного процесса (процесс,
для которого исполняется системный вызов) и продолжает работу. Противоположные
действия могут создать эффекты semop(), которые должны исчезать
при выходе из worker. Теперь worker становится
прокси и устанавливает доменный сокет Linux с именем PROXY_<IP_адрес_удаленного_процесса>_
<идентификатор_удаленного_процесса>, используя приведенную выше
информацию. Примером может быть: PROXY_191.72.2.0_234.
Отныне он будет исполнять все операции semop() по защите
исходного удаленного процесса независимо от того, указали ему флаг
SEM_UNDO или нет.
Процесс front_end будет проверять присутствие подходящего прокси перед тем, как раздваивать процесс worker для обработки функции semop(). Если прокси присутствует, он подключается к нему с помощью доменного сокета Linux и ``инструктирует'' его о выполнении semop().
Прокси может исполнять любую функцию, допустимую для
worker,
но в текущей разработке процесс не сообщает прокси о необходимости
выполнения чего-либо, отличного от semop().
Когда исходный удаленный процесс останавливает исполнение, все его прокси информируются о завершении и ``делаются'' все необходимые ``отмены''.