Re: [xml] is libxml2 library thread safe

2012-01-26 Thread Daniel Veillard
On Mon, Jan 23, 2012 at 10:11:58AM +0100, Martin B. wrote:
 On 22.01.2012 23:15, ajay bhadauria wrote:
 Hi,
 Is libxml2 library is thread safe ? Can we use the same
 xmlSchemaValidCtxtPtr across the threads for schema validation ?
 
 libxml2 is thread-safe after the library has been initialized with
 xmlInitParser()

  for concurrent operations on different trees yes

 I would assume that xmlSchemaValidCtxtPtr is also thread-safe in
 general. (As long as you do not use it on the same object.)

  I think you need to create one validity context per thread.
Then the validations can run concurrently.

Daniel

-- 
Daniel Veillard  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
dan...@veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/
___
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
http://mail.gnome.org/mailman/listinfo/xml


Re: [xml] is libxml2 library thread safe

2012-01-23 Thread Alex Bligh



--On 23 January 2012 10:11:58 +0100 Martin B. 0xcdcdc...@gmx.at wrote:


libxml2 is thread-safe after the library has been initialized with
xmlInitParser()


Is that really true? Are node attach and detach operations atomic in
their tree modifications? I don't think I would feel happy traversing
a tree whilst another thread was modifying it.

--
Alex Bligh
___
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
http://mail.gnome.org/mailman/listinfo/xml


Re: [xml] is libxml2 library thread safe

2012-01-23 Thread Martin B.

On 23.01.2012 10:36, Alex Bligh wrote:



--On 23 January 2012 10:11:58 +0100 Martin B. 0xcdcdc...@gmx.at wrote:


libxml2 is thread-safe after the library has been initialized with
xmlInitParser()


Is that really true? Are node attach and detach operations atomic in
their tree modifications? I don't think I would feel happy traversing
a tree whilst another thread was modifying it.



Nah. I just meant the basic operations. You can't safely modify the same 
tree from different threads without manual sync.


Sorry for the confusion.


(I'd still say the *library* is thread safe, in that all global state of 
the library is threading safe. I guess it depends what one means by 
thread safe.)


br,
Martin
___
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
http://mail.gnome.org/mailman/listinfo/xml