Changeset 13879 for trunk/source/level-1


Ignore:
Timestamp:
Jun 24, 2010, 11:38:17 AM (9 years ago)
Author:
gb
Message:

It'd help if I checked this in ...

Define *PRE-GC-NOTIFICATION-HOOK*.

Call *PRE-GC-NOTIFICATION-HOOK* if it's non-null when the CMAIN callback
gets a SIGTRAP pseudo-interrupt.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-1/x86-trap-support.lisp

    r13399 r13879  
    358358    (defconstant float-inexact-code
    359359      (conditional-os-constant '(os::FPE_FLTRES os::EXCEPTION_FLT_INEXACT_RESULT)))))
     360
     361(defparameter *pending-gc-notification-hook* nil)
    360362
    361363;;; UUOs are handled elsewhere.  This should handle all signals other than
     
    467469                                     :write-p (not (zerop code)))
    468470                     ()
    469                      frame-ptr))))
     471                     frame-ptr)))
     472          ((= signal #$SIGTRAP)
     473           (when (= code 0)
     474             (let* ((hook *pending-gc-notification-hook*))
     475               (declare (special *pending-gc-notification-hook*))
     476               (when hook (funcall hook))))))
    470477    skip))
    471478
Note: See TracChangeset for help on using the changeset viewer.