X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Finit_globals.c;h=786cb9c3425b74874ac46d8be11b2d3ad9228716;hp=6bd03fb0db02c6a9d99224454f4ec356268e1771;hb=d438b90ac17fbae25ba2554dd76f4e156f420437;hpb=7cf33bcd4c625c2197101ebffd38513e44271be6 diff --git a/src/init_globals.c b/src/init_globals.c index 6bd03fb..786cb9c 100644 --- a/src/init_globals.c +++ b/src/init_globals.c @@ -12,6 +12,8 @@ #include #endif +#include + #if YAZ_POSIX_THREADS #include #endif @@ -25,6 +27,14 @@ #include #endif +#if YAZ_HAVE_XML2 +#include +#endif + +#if YAZ_HAVE_XSLT +#include +#endif + #if YAZ_HAVE_EXSLT #include #endif @@ -64,6 +74,12 @@ void yaz_init_globals(void) gcry_control(GCRYCTL_INITIALIZATION_FINISHED, NULL, 0); } #endif +#if YAZ_HAVE_XML2 + xmlInitParser(); +#endif +#if YAZ_HAVE_XSLT + xsltInit(); +#endif #if YAZ_HAVE_EXSLT exsltRegisterAll(); #endif @@ -74,6 +90,31 @@ void yaz_init_globals(void) #endif } +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) + { +#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 +} + /* * Local variables: * c-basic-offset: 4