separated code from package definition
fixed typos (closes #1) added convenience function to make expanded macro code cleaner (closes #2)
This commit is contained in:
parent
58358f96c8
commit
16cc952d95
|
@ -0,0 +1,24 @@
|
|||
(in-package :with-user-abort)
|
||||
|
||||
(define-condition user-abort (#+sbcl sb-sys:interactive-interrupt
|
||||
#+ccl ccl:interrupt-signal-condition
|
||||
#+clisp system::simple-interrupt-condition
|
||||
#+ecl ext:interactive-interrupt
|
||||
#+allegro excl:interrupt-signal)
|
||||
()
|
||||
(:documentation "condition that inherits from implementation specific interrupt condition"))
|
||||
|
||||
(defun user-abort (&optional condition)
|
||||
(declare (ignore condition))
|
||||
(signal 'user-abort))
|
||||
|
||||
(defmacro with-user-abort (&body body)
|
||||
"execute BODY, signalling user-abort if the interrupt signal is received"
|
||||
`(handler-bind ((#+sbcl sb-sys:interactive-interrupt
|
||||
#+ccl ccl:interrupt-signal-condition
|
||||
#+clisp system::simple-interrupt-condition
|
||||
#+ecl ext:interactive-interrupt
|
||||
#+allegro excl:interrupt-signal
|
||||
|
||||
#'user-abort))
|
||||
,@body))
|
21
package.lisp
21
package.lisp
|
@ -3,24 +3,3 @@
|
|||
(:use :cl)
|
||||
(:export :user-abort
|
||||
:with-user-abort))
|
||||
(in-package :with-user-abort)
|
||||
|
||||
(define-condition user-abort (#+sbcl sb-sys:interactive-interrupt
|
||||
#+ccl ccl:interrupt-signal-condition
|
||||
#+clisp system::simple-interrupt-condition
|
||||
#+ecl ext:interactive-interrupt
|
||||
#+allergo excl:interrupt-signal)
|
||||
())
|
||||
|
||||
(defmacro with-user-abort (&body body)
|
||||
"execute BODY, signalling user-abort if the interrupt signal is recieved"
|
||||
`(handler-bind ((#+sbcl sb-sys:interactive-interrupt
|
||||
#+ccl ccl:interrupt-signal-condition
|
||||
#+clisp system::simple-interrupt-condition
|
||||
#+ecl ext:interactive-interrupt
|
||||
#+allergo excl:interrupt-signal
|
||||
#'(lambda (c)
|
||||
(declare (ignore c))
|
||||
(signal 'user-abort))))
|
||||
,@body))
|
||||
|
||||
|
|
|
@ -3,4 +3,6 @@
|
|||
:author "ava fox"
|
||||
:license "BSD 3-Clause"
|
||||
:version "0.1"
|
||||
:components ((:file "package")))
|
||||
:serial t
|
||||
:components ((:file "package")
|
||||
(:file "main")))
|
||||
|
|
Loading…
Reference in New Issue