Back to Turicreate

The XML C parser and toolkit of Gnome

deps/src/libxml2-2.9.1/doc/threads.html

6.4.13.0 KB
Original Source

| |

|

|

|

The XML C parser and toolkit of Gnome

Thread safety

|

|

|

|

|

|

| Developer Menu | |

|

| API Indexes | |

|

| Related links | |

|

|

|

|

|

|

Starting with 2.4.7, libxml2 makes provisions to ensure that concurrent threads can safely work in parallel parsing different documents. There is however a couple of things to do to ensure it:

  • configure the library accordingly using the --with-threads options
  • call xmlInitParser() in the "main" thread before using any of the libxml2 API (except possibly selecting a different memory allocator)

Note that the thread safety cannot be ensured for multiple threads sharing the same document, the locking must be done at the application level, libxml exports a basic mutex and reentrant mutexes API in <libxml/threads.h>. The parts of the library checked for thread safety are:

  • concurrent loading
  • file access resolution
  • catalog access
  • catalog building
  • entities lookup/accesses
  • validation
  • global variables per-thread override
  • memory handling

XPath has been tested for threaded usage on non-modified document for example when using libxslt, but make 100% sure the documents are accessed read-only !

Daniel Veillard

|

|

|

|

|