Hi,
In message "Re: Ruby Extension Code in C, GC Question"
on Mon, 3 Mar 2008 11:19:56 +0900, Pie Squared <PieSquared / gmail.com> writes:
|What happens if you create a new object inside the C code, and this
|triggers a garbage collection?
|When you create new objects in the C code, are they automatically
|added to the 'current' scope, so that the GC sees them? If so, then
|how does it know when to remove them from the scope, and if not, then
|what would happen if a GC cycle was triggered during C code execution?
The object will be marked by Ruby's conservative garbage collector,
which marks objects seemed to be referenced from system stack.
http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)#Precise_vs._conservative_and_internal_pointers
matz.