+void yaz_deinit_globals(void)
+{
+ if (!yaz_init_flag)
+ return;
+#if YAZ_POSIX_THREADS
+ pthread_mutex_lock(&yaz_init_mutex);
+#endif
+ if (yaz_init_flag)
+ {
+ yaz_log_deinit_globals();
+#if HAVE_GNUTLS_H
+ gnutls_global_deinit();
+#endif
+#if YAZ_HAVE_XSLT
+ xsltCleanupGlobals();
+#endif
+#if YAZ_HAVE_XML2
+ xmlCleanupParser();
+#endif
+ yaz_init_flag = 0;
+ }
+#if YAZ_POSIX_THREADS
+ pthread_mutex_unlock(&yaz_init_mutex);
+#endif
+}
+