GC asserts and threads
Hi there, I'm debugging an issue here that cause the GC asserts to trigger, with the values compared being off by one. The problem disappears when I compile --without-threads. The program does not explicitly create threads Is there any code in GUILE that would create a thread (possibly leading to race conditions) when there is no explicit start-thread call in the code? The program (lilypond) does run through the regular GUILE boot procedure. -- Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen
Re: GC asserts and threads
On Tue 09 Sep 2008 07:58, Han-Wen Nienhuys [EMAIL PROTECTED] writes: Is there any code in GUILE that would create a thread (possibly leading to race conditions) when there is no explicit start-thread call in the code? The program (lilypond) does run through the regular GUILE boot procedure. Yep, when compiled with threads, guile spawns a separate thread to handle signals. Andy -- http://wingolog.org/
Re: GC asserts and threads
Andy Wingo escreveu: On Tue 09 Sep 2008 07:58, Han-Wen Nienhuys [EMAIL PROTECTED] writes: Is there any code in GUILE that would create a thread (possibly leading to race conditions) when there is no explicit start-thread call in the code? The program (lilypond) does run through the regular GUILE boot procedure. Yep, when compiled with threads, guile spawns a separate thread to handle signals. but I am only seeing one $ guile guile (all-threads) (#thread 3086285552 (8208008)) Andy -- Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen
Re: GC asserts and threads
2008/9/9 Han-Wen Nienhuys [EMAIL PROTECTED]: On Tue, Sep 9, 2008 at 4:00 AM, Andy Wingo [EMAIL PROTECTED] wrote: On Tue 09 Sep 2008 07:58, Han-Wen Nienhuys [EMAIL PROTECTED] writes: Is there any code in GUILE that would create a thread (possibly leading to race conditions) when there is no explicit start-thread call in the code? The program (lilypond) does run through the regular GUILE boot procedure. Yep, when compiled with threads, guile spawns a separate thread to handle signals. Where does that happen? Look for ensure_signal_delivery_thread in scmsigs.c. Neil