GNUTLS_STATIC_MUTEX_LOCK(global_init_mutex);
if (_gnutls_init == 1) {
_gnutls_init = 0;
- GNUTLS_STATIC_MUTEX_UNLOCK(global_init_mutex);
gl_sockets_cleanup();
gnutls_crypto_deinit();
_gnutls_rnd_deinit();
gnutls_mutex_deinit(&_gnutls_file_mutex);
loaded_modules = 0;
- GNUTLS_STATIC_MUTEX_DEINIT(global_init_mutex);
} else {
if (_gnutls_init > 0)
_gnutls_init--;
- GNUTLS_STATIC_MUTEX_UNLOCK(global_init_mutex);
}
+ GNUTLS_STATIC_MUTEX_UNLOCK(global_init_mutex);
}
/**
# define GNUTLS_STATIC_MUTEX_UNLOCK(mutex) \
LeaveCriticalSection(mutex)
-# define GNUTLS_STATIC_MUTEX_DEINIT(mutex) \
- DeleteCriticalSection(mutex); \
- free(mutex); mutex = NULL
-
#elif defined(HAVE_PTHREAD_LOCKS)
# include <pthread.h>
# define GNUTLS_STATIC_MUTEX(mutex) \
# define GNUTLS_STATIC_MUTEX_UNLOCK(mutex) \
pthread_mutex_unlock(&mutex)
-# define GNUTLS_STATIC_MUTEX_DEINIT(mutex) { \
- static const pthread_mutex_t t = PTHREAD_MUTEX_INITIALIZER; \
- pthread_mutex_destroy(&mutex); \
- memcpy(&mutex, &t, sizeof(mutex)); \
- }
-
#else
# define GNUTLS_STATIC_MUTEX(mutex)
# define GNUTLS_STATIC_MUTEX_LOCK(mutex)
# define GNUTLS_STATIC_MUTEX_UNLOCK(mutex)
-# define GNUTLS_STATIC_MUTEX_DEINIT(mutex)
#endif
#endif