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'.



Reply via email to