Changeset 10277


Ignore:
Timestamp:
Aug 2, 2008, 10:08:54 PM (11 years ago)
Author:
gb
Message:

In RESTORE-LISP-POINTERS: clear *INTERACTIVE-STREAMS-INITIALIZED*
early, then call INITIALIZE-INTERACTIVE-STREAMS* and set the variable
ASAP (after locks revived and FFI reinitialized.)

Guard calls to *LISP-SYSTEM-POINTER-FUNCTIONS* with a restart (like
for the other kinds of reinitialization functions.) Errors in any
of the "system" functions might be even more critical, but it's
better to try to let the user know that something allegedly useful
failed than to just report an even more mysterious error.

File:
1 edited

Legend:

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

    r10256 r10277  
    223223
    224224(defun restore-lisp-pointers ()
     225  (setq *interactive-streams-initialized* nil)
    225226  (%revive-system-locks)
    226227  (refresh-external-entrypoints)
    227228  (restore-pascal-functions)
    228   (dolist (f (reverse *lisp-system-pointer-functions*))
    229     (funcall f))
    230   (let ((restore-lisp-fns *restore-lisp-functions*)
     229  (initialize-interactive-streams)
     230  (let ((system-ptr-fns (reverse *lisp-system-pointer-functions*))
     231        (restore-lisp-fns *restore-lisp-functions*)
    231232        (user-pointer-fns *lisp-user-pointer-functions*)
    232233        (lisp-startup-fns *lisp-startup-functions*))
     
    239240                               (if (symbolp f) f (function-name f)))
    240241                     (funcall f)))))
     242          (dolist (f system-ptr-fns) (funcall call-with-restart f))
    241243          (dolist (f restore-lisp-fns) (funcall call-with-restart f))
    242244          (dolist (f (reverse user-pointer-fns)) (funcall call-with-restart f))
Note: See TracChangeset for help on using the changeset viewer.