GC asserts and threads

2008-09-09 Thread Han-Wen Nienhuys
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

2008-09-09 Thread Andy Wingo
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

2008-09-09 Thread Han-Wen Nienhuys
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-09-09 Thread Neil Jerram
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