diff --git a/ChangeLog b/ChangeLog index 8032d313..8737b15f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Aug 28 10:01:44 CEST 2003 Daniel Veillard + + * globals.c threads.c: fixing bug #120870 try to avoid problem + with uninitialized mutexes + Wed Aug 27 16:12:41 CEST 2003 Daniel Veillard * relaxng.c: fixed an error reporting bug in Relax-NG when we end diff --git a/globals.c b/globals.c index 5342340c..2cddaa85 100644 --- a/globals.c +++ b/globals.c @@ -480,6 +480,9 @@ xmlInitializeGlobalState(xmlGlobalStatePtr gs) /* * Perform initialization as required by libxml */ + if (xmlThrDefMutex == NULL) + xmlInitGlobals(); + xmlMutexLock(xmlThrDefMutex); #ifdef LIBXML_DOCB_ENABLED diff --git a/threads.c b/threads.c index 8db1aac2..fd03e66c 100644 --- a/threads.c +++ b/threads.c @@ -170,8 +170,10 @@ xmlMutexLock(xmlMutexPtr tok) * xmlMutexUnlock() is used to unlock a libxml2 token. */ void -xmlMutexUnlock(xmlMutexPtr tok ATTRIBUTE_UNUSED) +xmlMutexUnlock(xmlMutexPtr tok) { + if (tok == NULL) + return; #ifdef HAVE_PTHREAD_H pthread_mutex_unlock(&tok->lock); #elif defined HAVE_WIN32_THREADS