Hi Linas, [cc'ing them all, but followups to just one please -- bug-guile is probably best]
For my part I apologize for not having the cycles to poke this more thoroughly. Fortunately you are a good programmer and can figure things out :) History: pthread support was new with 1.8, as you probably know. A number of people have used it, but it seems that perhaps you are pounding it more than most. On Thu 13 Nov 2008 05:56, "Linas Vepstas" <[EMAIL PROTECTED]> writes: > Basically, at any given time, some thread might be > in a critical section. Some other thread may be > throwing an error for some utterly unrelated reason. > Yet, when the error is thrown, this "critical section" > check will trip, and it will do so for an utterly bogus > reason. At least, that describes my case. > > Is there any reason at all not to remove this check > entirely? (at libguile/throw.c line 695.) I think the idea behind the check sounds good -- it is incorrect to throw from within a critical section, and the check detects this. But the check is incorrect as you noticed, it should be checking if the current thread is in a critical section. So we have two options, to remove the check or to fix the critical section counter (possiblity to be thread-local). My instinct would be that removal is the correct solution in 1.8, and that in master the decision depends on whether we merge the BDW GC or not, and what the impact that GC has on the idea of critical sections. More input appreciated. Cheers, Andy -- http://wingolog.org/