Changeset 11983


Ignore:
Timestamp:
Apr 29, 2009, 3:30:27 PM (10 years ago)
Author:
gb
Message:

If :TOPLEVEL-FUNCTION is specified, don't run RESTORE-LISP-POINTERS twice
on startup; aside from wasting time, this can create circularities in
(for instance) the gcable-pointers list (because %REVIVE-SYSTEM-LOCKS
gets called twice), and the GC can hang walking that circular list.
ticket:464 seems to describe a symptom of this.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lib/dumplisp.lisp

    r11979 r11983  
    9999
    100100(defun %save-application-internal (filename &key
    101                                             toplevel-function  ;????
     101                                            toplevel-function ;????
    102102                                            error-handler ; meaningless unless application-class or *application* not lisp-development..
    103103                                            application-class
     
    120120                                   init-file
    121121                                   (application-init-file *application*)))))
    122         (let* ((user-toplevel-function (coerce-to-function toplevel-function)))
     122    (let* ((user-toplevel-function (coerce-to-function toplevel-function)))
    123123      (setq toplevel-function
    124124            (lambda ()
    125               (restore-lisp-pointers)
    126               ;; Shouldn't be necessary post 1.2
    127               ;;(initialize-interactive-streams)
    128125              (process-run-function "toplevel" (lambda ()
    129126                                                 (funcall user-toplevel-function)
Note: See TracChangeset for help on using the changeset viewer.