On Mar 8, 2010, at 2:13 PM, Norman Gray wrote:

> Looking at the corresponding source, it appears to be associated with my 
> freeing a storage object before I've freed an iterator over the storage 
> object.
> 
> I can see that this might plausibly be regarded as a programming error on my 
> part, but in this case it's happening within the exit handler of a 
> garbage-collected system (in a binding to mzscheme, in fact), so that (a) I 
> genuinely do want everything to be shut down neatly, now, no questions asked, 
> and (b) it rapidly gets messy trying to enforce an order on librdf_free_* 
> calls at this stage.

The Ruby classes built on top of the raw swig bindings also suffer this 
disfunction, to the point where I completely abandoned them and use the swig 
bindings directly, programming tedious manual C-style resource management in 
ruby (ick).  Getting redland to and the Ruby garbage collection to play nice in 
an automatic way with correct order of de-allocation is a chunk of work--the C 
objects have references to each other that are not visible to Ruby.

-john

_______________________________________________
redland-dev mailing list
[email protected]
http://lists.librdf.org/mailman/listinfo/redland-dev

Reply via email to