From: Yukihiro Matsumoto Date: 2008-03-03T11:54:57+09:00 Subject: Re: Ruby Extension Code in C, GC Question Hi, In message "Re: Ruby Extension Code in C, GC Question" on Mon, 3 Mar 2008 11:19:56 +0900, Pie Squared 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.