Hi Linas, "Linas Vepstas" <linasveps...@gmail.com> writes:
> --- guile-1.8.6.orig/libguile/throw.c 2008-12-08 11:42:56.000000000 -0600 > +++ guile-1.8.6/libguile/throw.c 2008-12-13 17:28:27.000000000 -0600 > @@ -692,7 +692,7 @@ scm_ithrow (SCM key, SCM args, int noret > SCM dynpair = SCM_UNDEFINED; > SCM winds; > > - if (scm_i_critical_section_level) > + if (SCM_I_CURRENT_THREAD->block_asyncs) > { > fprintf (stderr, "throw from within critical section.\n"); > abort (); It seems to me that "throw from within critical section" means precisely "throw when SCM_I_CRITICAL_SECTION_LEVEL is non-zero". I don't see what asyncs have to do with that. Thanks, Ludo'.