Justin Bonnar wrote:
> Ryan Davis wrote:
>> Chapter 21 of the Pickaxe (2nd ed) is what you want. It covers this
>> topic fairly well.
> 
> I'm not exposing a Ruby object though.  Also, the order in which the 
> objects are freed when the interpreter process exits matters: if my 
> world object is freed before the instances, there will be a segmentation 
> fault.  The order in which circularly referenced objects are freed at 
> exit seems to be undefined, so maintaining a reference for every object 
> won't work well.
> 
> As I said before, I tried something along the lines of:
> 
>   my_global_object *world;
>   VALUE world_holder;
> 
>   void Init_extension()
>   {
>      world = create_world();
>      world_holder = Data_Wrap_Struct(rb_cObject, 0, 
> free_my_global_object, world);
>      rb_global_variable(world_holder);
>   }
> 
> but still get segmentation faults.

Your free_my_global_object() function should be called at exit. Is it?

-- 
       vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407