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
