2009/3/5 Neil Jerram <n...@ossau.uklinux.net>: >> Yes, it's an unrelated bug. All of the places that raise errors (and >> so exit non-locally) should exit the critical section first. > >> You're absolutely right. I'll leave this part out, and generate a >> separate patch for it. > > Here's the separate patch...
Err, OK, so I thought I'd look at the code more carefully. I don't understand the patch. libguile/scmsigs.c has a SCM_CRITICAL_SECTION_START at line 339, which seems to be balanced by SCM_CRITICAL_SECTION_END; at lines 442 and 461, right before the return from the subroutine. So why insert this seemingly un-needed SCM_CRITICAL_SECTION_END, and worse, nest it in an else block? --linas