NAME
gnutls_global_init - initialize the global data to defaults.
SYNOPSIS
#include <gnutls/gnutls.h>
int gnutls_global_init( void);
ARGUMENTS
void
DESCRIPTION
This function initializes the global data to defaults. Every gnutls
application has a global data which holds common parameters shared by
gnutls session structures. You should call gnutls_global_deinit() when
gnutls usage is no longer needed
Note that this function will also initialize libgcrypt, if it has not
been initialized before. Thus if you want to manually initialize
libgcrypt you must do it before calling this function. This is useful
in cases you want to disable libgcrypt’s internal lockings etc.
This function increment a global counter, so that
gnutls_global_deinit() only releases resources when it has been called
as many times as gnutls_global_init(). This is useful when GnuTLS is
used by more than one library in an application. This function can be
called many times, but will only do something the first time.
Note! This function is not thread safe. If two threads call this
function simultaneously, they can cause a race between checking the
global counter and incrementing it, causing both threads to execute the
library initialization code. That would lead to a memory leak. To
handle this, your application could invoke this function after aquiring
a thread mutex. To ignore the potential memory leak is also an option.
RETURNS
On success, GNUTLS_E_SUCCESS (zero) is returned, otherwise an error
code is returned.
REPORTING BUGS
Report bugs to <bug-gnutls@gnu.org>. GnuTLS home page:
http://www.gnu.org/software/gnutls/ General help using GNU software:
http://www.gnu.org/gethelp/
COPYRIGHT
Copyright © 2008 Free Software Foundation.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
SEE ALSO
The full documentation for gnutls is maintained as a Texinfo manual.
If the info and gnutls programs are properly installed at your site,
the command
info gnutls
should give you access to the complete manual.