On Tue 09 Jan 2024 23:36, Ludovic Courtès <l...@gnu.org> writes: > scheme@(shepherd-user)> (+ 2 3) > $6 = 5 > scheme@(shepherd-user)> (lookup-service 'repl) > ;;; socket:56:1: warning: possibly unbound variable `lookup-service' > ice-9/boot-9.scm:1685:16: In procedure raise-exception: > Unbound variable: lookup-service > > Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. > scheme@(shepherd-user) [1]> While reading expression: > Attempt to suspend fiber within continuation barrier > scheme@(shepherd-user) [1]> While reading expression: > Attempt to suspend fiber within continuation barrier > > > The problem here is that the exception is raised C code (in > libguile/modules.c, then indirectly calling ‘scm_error’), which makes it > a “continuation barrier” (meaning that it prevents Fibers from switching > contexts among fibers in the shepherd process, hence the error above.)
Interesting. I guess the short-term fix is to only enter the debugger if suspendable-continuation? is true for the fibers prompt, and otherwise just print a backtrace. Andy