lispdoc - results for unwind-protect

(unwind-protect protected &body cleanup)
Function: UNWIND-PROTECT protected cleanup* Evaluate the form PROTECTED, returning its values. The CLEANUP forms are evaluated whenever the dynamic scope of the PROTECTED form is exited (either due to normal completion or a non-local exit such as THROW).
 Mentioned in:
CLtL2 - 23.2. Opening and Closing Files
CLtL2 - 3. Scope and Extent
CLtL2 - 7.10.2. Rules Governing the Passing of Multiple Values
CLtL2 - 7.11. Dynamic Non-Local Exits
CLtL2 - A.4. Primitives
HyperSpec - Special Operator UNWIND-PROTECT
On Lisp - The with- Macro
PCL - closing files
PCL - other kinds of io
PCL - other special operators
PCL - unwinding the stack
Successful Lisp - chapter09
Successful Lisp - chapter30
( (&optional abort-flag) protected-form
 &body clauses)
Function: Like CL:UNWIND-PROTECT, but you can specify the circumstances that the cleanup CLAUSES are run. clauses ::= (:NORMAL form*)* | (:ABORT form*)* | (:ALWAYS form*)* Clauses can be given in any order, and more than one clause can be given for each circumstance. The clauses whose denoted circumstance occured, are executed in the order the clauses appear. ABORT-FLAG is the name of a variable that will be bound to T in CLAUSES if the PROTECTED-FORM aborted preemptively, and to NIL otherwise. Examples: (unwind-protect-case () (protected-form) (:normal (format t "This is only evaluated if PROTECTED-FORM executed normally.~%")) (:abort (format t "This is only evaluated if PROTECTED-FORM aborted preemptively.~%")) (:always (format t "This is evaluated in either case.~%"))) (unwind-protect-case (aborted-p) (protected-form) (:always (perform-cleanup-if aborted-p)))