view lisp/post-gc.el @ 1378:69a674f5861f

[xemacs-hg @ 2003-03-24 16:30:55 by youngs] 2003-03-25 Steve Youngs <youngs@xemacs.org> * package-admin.el: (package-admin-delete-binary-package): Only delete the lisp directory if it exists. (package-admin-find-top-directory): New. (package-admin-get-install-dir): Use it. * package-get.el (package-get-install-to-user-init-directory): New. If non-nil install packages under `user-init-directory'. (package-get): `package-admin-get-install-dir' only takes 2 args. * package-ui.el (pui-install-selected-packages): The 2nd arg to `package-admin-get-install-dir' is optional, no need to specify nil.
author youngs
date Mon, 24 Mar 2003 16:30:56 +0000
parents 011e1bce6ece
children 75b8038f720e
line wrap: on
line source

;;; post-gc.el --- post-gc actions

;; Copyright (C) 1985-1986, 1990, 1992-1997 Free Software Foundation, Inc.
;; Copyright (c) 1993, 1994 Sun Microsystems, Inc.
;; Copyright (C) 1995 Board of Trustees, University of Illinois

;; Author: Mike Sperber <mike@xemacs.org>
;; Maintainer: XEmacs Development Team
;; Keywords: internal, dumped

;; This file is part of XEmacs.

;; XEmacs is free software; you can redistribute it and/or modify it
;; under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.

;; XEmacs is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;; General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with XEmacs; see the file COPYING.  If not, write to the 
;; Free Software Foundation, 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.

;;; Synched up with: Not in FSF.

;;; Commentary:

;; This file is dumped with XEmacs.

;; This file defines actions to happen after each GC to perform
;; additional cleanup, call finalizers, etc.

(defun run-finalizers (alist)
  "Run the finalizers for all objects that have just become unreachable."
  (let ((info (assq 'finalize-list alist)))
    (if info
	(let ((finalize-list (cdr info)))
	  (while finalize-list
	    (funcall (cdr (car finalize-list)) (car (car finalize-list)))
	    (setq finalize-list (cdr finalize-list)))))))

(add-hook 'post-gc-hook 'run-finalizers)