- `(flet ((,without-interrupts-body ()
- (declare (disable-package-locks allow-with-interrupts with-local-interrupts))
- (macrolet ((allow-with-interrupts (&body allow-forms)
- `(let ((*allow-with-interrupts* ,',outer-allow-with-interrupts))
- ,@allow-forms))
- (with-local-interrupts (&body with-forms)
- `(let ((*allow-with-interrupts* ,',outer-allow-with-interrupts)
- (*interrupts-enabled* ,',outer-allow-with-interrupts))
- (when (and ,',outer-allow-with-interrupts *interrupt-pending*)
- (receive-pending-interrupt))
- (locally ,@with-forms))))
+ `(dx-flet ((,without-interrupts-body ()
+ (declare (disable-package-locks allow-with-interrupts
+ with-local-interrupts))
+ (macrolet
+ ((allow-with-interrupts
+ (&body allow-forms)
+ `(let ((*allow-with-interrupts*
+ ,',outer-allow-with-interrupts))
+ ,@allow-forms))
+ (with-local-interrupts
+ (&body with-forms)
+ `(let ((*allow-with-interrupts*
+ ,',outer-allow-with-interrupts)
+ (*interrupts-enabled*
+ ,',outer-allow-with-interrupts))
+ (when ,',outer-allow-with-interrupts
+ (when *unblock-deferrables-on-enabling-interrupts-p*
+ (setq *unblock-deferrables-on-enabling-interrupts-p*
+ nil)
+ (sb!unix::unblock-deferrable-signals))
+ (when (or *interrupt-pending*
+ #!+sb-thruption *thruption-pending*)
+ (receive-pending-interrupt)))
+ (locally ,@with-forms))))