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:
>> 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 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.
More information about the redland-dev