git.fiddlerwoaroof.com
src/utils.lisp
7e8592bd
 (in-package :mfa-tool)
 
 (defmacro with-retry (form &body restart-cases)
   `(loop (restart-case (return ,form)
            (continue ())
            ,@restart-cases)))
 
 (defmacro with-retry* (bindings &body body)
   `(loop
      (restart-bind (,@bindings)
        ,@(butlast body)
        ,(cons 'return (last body)))))
 
 (defmacro safely-invoke-restart (name condition &rest args)
   (alexandria:with-gensyms (restart)
     `(alexandria:when-let ((,restart (find-restart ,name ,condition)))
        (invoke-restart ,restart ,@args))))