While 'igraph_read_graph_graphml' may be called multiple times, I checked the 'xmlInitParser' function to find this source:
void
xmlInitParser(void) {
if (xmlParserInitialized != 0)
return;
#ifdef LIBXML_THREAD_ENABLED
__xmlGlobalInitMutexLock();
if (xmlParserInitialized == 0) {
...
Where it a) locks on __xmlGlobalInitMutexLock(); and b) subsequently sets xmlParserInitialized to 1, so calling it multiple times doesn't really hurt (I am fairly sure of this and will report back if otherwise).
This bug manifested itself using the Python library and Python threads, which are pthreads after all.
-Chris