Hi, "Linas Vepstas" <[EMAIL PROTECTED]> writes:
> Anyway, I have an even simpler variant, with only *one* > thread deadlocked in gc. Here's the scenario: > > thread A: > scm_init_guile(); > does some other stuff, then > goes to sleep in select, waiting on socket input > (as expected). > > thread B: > scm_init_guile() -- hangs here. Just to be sure: do you use raw select(2), `scm_std_select ()', or select(2) within `scm_without_guile ()'? The first option would lead to the situation you're observing because Guile's GC requires thread to cooperate, which is why `scm_without_guile' exists (info "(guile) Blocking"). You should use one of the other options. Ludo'.
