[redland-dev] raptor_parsers_finish

Dave Beckett dave at dajobe.org
Thu May 29 16:28:57 BST 2008


Sebastian Trüg wrote:
> On Thursday 29 May 2008 16:04:28 Michael Stahl wrote:
>> hello,
>>
>> in latest raptor release 1.4.17/ redland 1.0.7,
>> librdf_free_world calls raptor_parsers_finish, which kills a "static"
>> variable "parsers".
>>
>> this makes other librdf_worlds very unhappy, as they cannot create parsers
>> any more.
>>
>> right now i use a librdf_world for every repository/model, as that is just
>> simplest to implement; is this supposed to work, or should i use just one
>> librdf_world per process?
>>
>> or is this a bug, and the "parsers" variable should never be freed / be a
>> part of the librdf_world?
> 
> I actually to the same in Soprano since I ran in so much trouble with a single 
> world instance and multithreading.
> 
> It is not the way world was intended to be used but it works flawlessly.

It is indeed not the way it was intended.

Threading support hasn't been a focus; there is a redland configure option
but I don't think it's been tested for some time.

On raptor (& rasqal) we are going to introduce a raptor_world object to
get rid of all the statics in raptor2 - I mentioned this in the State of
Redland 2008-02 post[1][2] earlier this year.   We've already committed the
change to add the same thing to rasqal, as I also announced earlier, the
next release is a "break the api" one.  I'm feeling raptor2 will also do
this sooner, as there are a bunch of things that need cleaning up.

Dave

[1] http://librdf.org/2008/02/18-state/
[2] http://librdf.org/2007/02/18-state/#sec-future-raptor2


More information about the redland-dev mailing list