24 lines
567 B
Plaintext
24 lines
567 B
Plaintext
;;;; A frame re-entered through a handler names the signal it is in, not the
|
|
;;;; last Flan call it made: [inner] calls [helper] on line 11 and stops on
|
|
;;;; line 12, and the handler pauses, so the backtrace shows [inner] at 12.
|
|
(import agent "vendor:agent")
|
|
|
|
(defstruct Oops [n i32])
|
|
|
|
(defn helper [] i32 1)
|
|
|
|
(defn inner [] i32
|
|
(helper)
|
|
(error (Oops {.n 1}))
|
|
0)
|
|
|
|
(defn go [] i32
|
|
(restart-case
|
|
(handler-bind [(Oops [_o] (pause))] (inner))
|
|
(skip [] 5)))
|
|
|
|
(defn main [] i32
|
|
(agent/start "/tmp/flan-dev-bt-handler-fallback.sock")
|
|
(println (go))
|
|
0)
|