I realize the _i_ will have to be replaced, and the name scm_c_with_continuation_barrier is already taken, however, I found in writing gdb/guile/scm-safe-call.c that scm_i_with_continuation_barrier is exactly what I need. Since it's not available I had to do two levels of calls where one should suffice.
Here's what I'd like: scm_foo_with_continuation_barrier ( my_body, &body_data, my_handler, &handler_data, my_pre_unwind_handler, &pre_unwind_handler_data); Since I don't have that I have to do something more complicated. I'm currently experimenting with scm_with_guile -> scm_c_with_continuation_barrier -> scm_c_catch. [what's currently checked into the gdb tree is a work in progress. blech - I thought I had resolved this but I can see I'm lacking any continuation barriers] The current scm_c_with_continuation_barrier is nasty because it uses continuations.c:pre_unwind_handler which will print the exception ... but I don't want Guile to print the exception - I want to control if/when it's printed. I also don't want continuations.c:c_handler - I don't want a throw of 'quit to terminate gdb. What I want is all the functionality of scm_c_catch and all the functionality of scm_c_with_continuation_barrier ... which is exactly what scm_i_with_continuation_barrier is. So ... any chance in exporting scm_i_with_continuation_barrier? [renamed of course :-)] How about scm_c_catch_with_continuation_barrier?