chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Calling out to C causing hang


From: Chris Double
Subject: Re: [Chicken-users] Calling out to C causing hang
Date: Mon, 7 Apr 2003 22:03:52 +1200
User-agent: KMail/1.4.3

On Mon, 07 Apr 2003 21:38, Tony Garnock-Jones wrote:
> Wow. For me, that's a big ask - the GTK+ stuff was locking up on the
> final GC before exit...

I can get it to happen almost immediately. I've got gdb going now so I'll dig 
into it when I get a chance. From a casual inspection with gdb it looks like 
saved_stack_limit and C_stack_limit are being set to very similar values 
(sometimes equal) which is causing the infinite loop when C_stack_probe is 
checked in the C code of functions. This causes C_save_and_reclaim to be 
called.

From the looks of things C_stack_limit is supposed to be set to some value to 
cause a collection when C_raise_interrupt is called (because it's the 
collection that results in the interrupt being handled). The old value is 
saved in saved_stack_limit to restore later.

When handle_interrupt is run, then C_stack_limit is restored to 
saved_stack_limit. If these values are the same or sufficiently similar then 
an inifinte loop of collections results.

How to find out how they get that way is the problem...

Chris.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]