Added some missing files, Daniel
diff --git a/doc/html/libxml-threads.html b/doc/html/libxml-threads.html
new file mode 100644
index 0000000..044e848
--- /dev/null
+++ b/doc/html/libxml-threads.html
@@ -0,0 +1,1373 @@
+<HTML
+><HEAD
+><TITLE
+>threads</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.64
+"><LINK
+REL="HOME"
+TITLE="Gnome XML Library Reference Manual"
+HREF="book1.html"><LINK
+REL="UP"
+TITLE="Libxml Library Reference"
+HREF="libxml-lib.html"><LINK
+REL="PREVIOUS"
+TITLE="catalog"
+HREF="libxml-catalog.html"><LINK
+REL="NEXT"
+TITLE="globals"
+HREF="libxml-globals.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>Gnome XML Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="libxml-catalog.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="book1.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="libxml-lib.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="libxml-globals.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="LIBXML-THREADS"
+>threads</A
+></H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN19856"
+></A
+><H2
+>Name</H2
+>threads&nbsp;--&nbsp;</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN19859"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+struct      <A
+HREF="libxml-threads.html#XMLMUTEX"
+>xmlMutex</A
+>;
+typedef     <A
+HREF="libxml-threads.html#XMLMUTEXPTR"
+>xmlMutexPtr</A
+>;
+<A
+HREF="libxml-threads.html#XMLMUTEXPTR"
+>xmlMutexPtr</A
+> <A
+HREF="libxml-threads.html#XMLNEWMUTEX"
+>xmlNewMutex</A
+>                     (void);
+void        <A
+HREF="libxml-threads.html#XMLMUTEXLOCK"
+>xmlMutexLock</A
+>                    (<A
+HREF="libxml-threads.html#XMLMUTEXPTR"
+>xmlMutexPtr</A
+> tok);
+void        <A
+HREF="libxml-threads.html#XMLMUTEXUNLOCK"
+>xmlMutexUnlock</A
+>                  (<A
+HREF="libxml-threads.html#XMLMUTEXPTR"
+>xmlMutexPtr</A
+> tok);
+void        <A
+HREF="libxml-threads.html#XMLFREEMUTEX"
+>xmlFreeMutex</A
+>                    (<A
+HREF="libxml-threads.html#XMLMUTEXPTR"
+>xmlMutexPtr</A
+> tok);
+struct      <A
+HREF="libxml-threads.html#XMLRMUTEX"
+>xmlRMutex</A
+>;
+typedef     <A
+HREF="libxml-threads.html#XMLRMUTEXPTR"
+>xmlRMutexPtr</A
+>;
+<A
+HREF="libxml-threads.html#XMLRMUTEXPTR"
+>xmlRMutexPtr</A
+> <A
+HREF="libxml-threads.html#XMLNEWRMUTEX"
+>xmlNewRMutex</A
+>                   (void);
+void        <A
+HREF="libxml-threads.html#XMLRMUTEXLOCK"
+>xmlRMutexLock</A
+>                   (<A
+HREF="libxml-threads.html#XMLRMUTEXPTR"
+>xmlRMutexPtr</A
+> tok);
+void        <A
+HREF="libxml-threads.html#XMLRMUTEXUNLOCK"
+>xmlRMutexUnlock</A
+>                 (<A
+HREF="libxml-threads.html#XMLRMUTEXPTR"
+>xmlRMutexPtr</A
+> tok);
+void        <A
+HREF="libxml-threads.html#XMLFREERMUTEX"
+>xmlFreeRMutex</A
+>                   (<A
+HREF="libxml-threads.html#XMLRMUTEXPTR"
+>xmlRMutexPtr</A
+> tok);
+void        <A
+HREF="libxml-threads.html#XMLINITTHREADS"
+>xmlInitThreads</A
+>                  (void);
+void        <A
+HREF="libxml-threads.html#XMLLOCKLIBRARY"
+>xmlLockLibrary</A
+>                  (void);
+void        <A
+HREF="libxml-threads.html#XMLUNLOCKLIBRARY"
+>xmlUnlockLibrary</A
+>                (void);
+int         <A
+HREF="libxml-threads.html#XMLGETTHREADID"
+>xmlGetThreadId</A
+>                  (void);
+int         <A
+HREF="libxml-threads.html#XMLISMAINTHREAD"
+>xmlIsMainThread</A
+>                 (void);
+void        <A
+HREF="libxml-threads.html#XMLCLEANUPTHREADS"
+>xmlCleanupThreads</A
+>               (void);
+<A
+HREF="libxml-globals.html#XMLGLOBALSTATEPTR"
+>xmlGlobalStatePtr</A
+> <A
+HREF="libxml-threads.html#XMLGETGLOBALSTATE"
+>xmlGetGlobalState</A
+>         (void);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN19890"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN19893"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN19895"
+></A
+><H3
+><A
+NAME="XMLMUTEX"
+></A
+>struct xmlMutex</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlMutex;</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN19900"
+></A
+><H3
+><A
+NAME="XMLMUTEXPTR"
+></A
+>xmlMutexPtr</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef xmlMutex *xmlMutexPtr;</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLNEWMUTEX"
+>xmlNewMutex</A
+>() is used to allocate a libxml2 token struct for use in
+synchronizing access to data.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN19907"
+></A
+><H3
+><A
+NAME="XMLNEWMUTEX"
+></A
+>xmlNewMutex ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="libxml-threads.html#XMLMUTEXPTR"
+>xmlMutexPtr</A
+> xmlNewMutex                     (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN19913"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN19922"
+></A
+><H3
+><A
+NAME="XMLMUTEXLOCK"
+></A
+>xmlMutexLock ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlMutexLock                    (<A
+HREF="libxml-threads.html#XMLMUTEXPTR"
+>xmlMutexPtr</A
+> tok);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLMUTEXLOCK"
+>xmlMutexLock</A
+>() is used to lock a libxml2 token.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN19930"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>tok</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the simple mutex</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN19939"
+></A
+><H3
+><A
+NAME="XMLMUTEXUNLOCK"
+></A
+>xmlMutexUnlock ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlMutexUnlock                  (<A
+HREF="libxml-threads.html#XMLMUTEXPTR"
+>xmlMutexPtr</A
+> tok);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLMUTEXUNLOCK"
+>xmlMutexUnlock</A
+>() is used to unlock a libxml2 token.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN19947"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>tok</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the simple mutex</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN19956"
+></A
+><H3
+><A
+NAME="XMLFREEMUTEX"
+></A
+>xmlFreeMutex ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlFreeMutex                    (<A
+HREF="libxml-threads.html#XMLMUTEXPTR"
+>xmlMutexPtr</A
+> tok);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLFREEMUTEX"
+>xmlFreeMutex</A
+>() is used to reclaim resources associated with a libxml2 token
+struct.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN19964"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>tok</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the simple mutex</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN19973"
+></A
+><H3
+><A
+NAME="XMLRMUTEX"
+></A
+>struct xmlRMutex</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlRMutex;</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN19978"
+></A
+><H3
+><A
+NAME="XMLRMUTEXPTR"
+></A
+>xmlRMutexPtr</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef xmlRMutex *xmlRMutexPtr;</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN19983"
+></A
+><H3
+><A
+NAME="XMLNEWRMUTEX"
+></A
+>xmlNewRMutex ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="libxml-threads.html#XMLRMUTEXPTR"
+>xmlRMutexPtr</A
+> xmlNewRMutex                   (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN19989"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN19998"
+></A
+><H3
+><A
+NAME="XMLRMUTEXLOCK"
+></A
+>xmlRMutexLock ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlRMutexLock                   (<A
+HREF="libxml-threads.html#XMLRMUTEXPTR"
+>xmlRMutexPtr</A
+> tok);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLRMUTEXLOCK"
+>xmlRMutexLock</A
+>() is used to lock a libxml2 token_r.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN20006"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>tok</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the reentrant mutex</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN20015"
+></A
+><H3
+><A
+NAME="XMLRMUTEXUNLOCK"
+></A
+>xmlRMutexUnlock ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlRMutexUnlock                 (<A
+HREF="libxml-threads.html#XMLRMUTEXPTR"
+>xmlRMutexPtr</A
+> tok);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLRMUTEXUNLOCK"
+>xmlRMutexUnlock</A
+>() is used to unlock a libxml2 token_r.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN20023"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>tok</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>  the reentrant mutex</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN20032"
+></A
+><H3
+><A
+NAME="XMLFREERMUTEX"
+></A
+>xmlFreeRMutex ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlFreeRMutex                   (<A
+HREF="libxml-threads.html#XMLRMUTEXPTR"
+>xmlRMutexPtr</A
+> tok);</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN20038"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>tok</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN20047"
+></A
+><H3
+><A
+NAME="XMLINITTHREADS"
+></A
+>xmlInitThreads ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlInitThreads                  (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLINITTHREADS"
+>xmlInitThreads</A
+>() is used to to initialize all the thread related
+data of the libxml2 library.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN20054"
+></A
+><H3
+><A
+NAME="XMLLOCKLIBRARY"
+></A
+>xmlLockLibrary ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlLockLibrary                  (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLLOCKLIBRARY"
+>xmlLockLibrary</A
+>() is used to take out a re-entrant lock on the libxml2
+library.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN20061"
+></A
+><H3
+><A
+NAME="XMLUNLOCKLIBRARY"
+></A
+>xmlUnlockLibrary ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlUnlockLibrary                (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLUNLOCKLIBRARY"
+>xmlUnlockLibrary</A
+>() is used to release a re-entrant lock on the libxml2
+library.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN20068"
+></A
+><H3
+><A
+NAME="XMLGETTHREADID"
+></A
+>xmlGetThreadId ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlGetThreadId                  (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLGETTHREADID"
+>xmlGetThreadId</A
+>() find the current thread ID number</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN20075"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the current thread ID number</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN20084"
+></A
+><H3
+><A
+NAME="XMLISMAINTHREAD"
+></A
+>xmlIsMainThread ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int         xmlIsMainThread                 (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLISMAINTHREAD"
+>xmlIsMainThread</A
+>() check wether the current thread is the main thread.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN20091"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>1 if the current thread is the main thread, 0 otherwise</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN20100"
+></A
+><H3
+><A
+NAME="XMLCLEANUPTHREADS"
+></A
+>xmlCleanupThreads ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void        xmlCleanupThreads               (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLCLEANUPTHREADS"
+>xmlCleanupThreads</A
+>() is used to to cleanup all the thread related
+data of the libxml2 library once processing has ended.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN20107"
+></A
+><H3
+><A
+NAME="XMLGETGLOBALSTATE"
+></A
+>xmlGetGlobalState ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="libxml-globals.html#XMLGLOBALSTATEPTR"
+>xmlGlobalStatePtr</A
+> xmlGetGlobalState         (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+><A
+HREF="libxml-threads.html#XMLGETGLOBALSTATE"
+>xmlGetGlobalState</A
+>() is called to retrieve the global state for a thread.
+keyonce will only be set once during a library invocation and is used
+to create globalkey, the key used to store each thread's TSD.</P
+><P
+>Note: it should not be called for the "main" thread as this thread uses
+the existing global variables defined in the library.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN20116"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the thread global state or NULL in case of error</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="libxml-catalog.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="book1.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="libxml-lib.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="libxml-globals.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>catalog</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>globals</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file