2.4.21 Тип завершителя

Объект завершителя помогает коду Lisp очищать после объектов, которые больше не требуются. Завершитель содержит объект функции Lisp. Когда объект завершителя становится недостижимым после прохода сборщика мусора, Emacs вызывает связанный с завершителем объект функции. При определении того, является ли завершитель достижимым, Emacs не учитывает ссылки от самих объектов завершителей, что позволяет использовать завершители, не беспокоясь о случайном захвате ссылок на сами завершаемые объекты.

Ошибки в завершителях печатаются в *Сообщения*. Emacs выполняет связанную с данным объектом завершителя функцию ровно один раз, даже если эта функция завершается с ошибкой.

Функция: make-finalizer function

Создает завершитель, который выполнит function. function будет вызвана после сборки мусора, когда возвращаемый объект завершителя станет недостижимым. Если объект завершителя достижим только через ссылки от других объектов завершителей, он не считается достижимым для целей определения того, следует ли вызывать function. function будет выполнена один раз для каждого объекта завершителя.