X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fcondition.lisp;h=5384c446d355a984ec79c912579d21dbbf96dcca;hb=fd324a9d981355d8bc10d2bd469cb54c4c9108fd;hp=2534c4acdff7a07eb108811abcd8c752d70a7681;hpb=35871544d182adf1895cf6d99d3f995ac2b425e0;p=sbcl.git diff --git a/src/code/condition.lisp b/src/code/condition.lisp index 2534c4a..5384c44 100644 --- a/src/code/condition.lisp +++ b/src/code/condition.lisp @@ -1147,7 +1147,11 @@ SB-EXT:PACKAGE-LOCKED-ERROR-SYMBOL.")) (reader-error-format-arguments condition) (reader-impossible-number-error-error condition)))))) -(define-condition timeout (serious-condition) ()) +(define-condition timeout (serious-condition) + ((seconds :initarg :seconds :initform nil :reader timeout-seconds)) + (:report (lambda (condition stream) + (format stream "Timeout occurred~@[ after ~A seconds~]." + (timeout-seconds condition))))) (define-condition io-timeout (stream-error timeout) ((direction :reader io-timeout-direction :initarg :direction)) @@ -1155,10 +1159,15 @@ SB-EXT:PACKAGE-LOCKED-ERROR-SYMBOL.")) (lambda (condition stream) (declare (type stream stream)) (format stream - "I/O timeout ~(~A~)ing ~S" + "I/O timeout ~(~A~)ing ~S." (io-timeout-direction condition) (stream-error-stream condition))))) +(define-condition deadline-timeout (timeout) () + (:report (lambda (condition stream) + (format stream "A deadline was reached after ~A seconds." + (timeout-seconds condition))))) + (define-condition declaration-type-conflict-error (reference-condition simple-error) ()