| Starting with 2.4.7, libxml2 makes provisions to ensure
thatconcurrentthreads can safely work in parallel parsing different
documents.There ishowever a couple of things to do to ensure it: configure the library accordingly using the --with-threads optionscall xmlInitParser() in the "main" thread before using any ofthelibxml2
    API (except possibly selecting a different memoryallocator)
 Note that the thread safety cannot be ensured for multiple
threadssharingthe same document, the locking must be done at the application
level,libxmlexports a basic mutex and reentrant mutexes API
in<libxml/threads.h>.The parts of the library checked for thread
safetyare: concurrent loadingfile access resolutioncatalog accesscatalog buildingentities lookup/accessesvalidationglobal variables per-thread overridememory handling
 XPath is supposed to be thread safe now, but this
wasn'ttestedseriously. Daniel Veillard |