Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ARES_LIBRARY_CLEANUP(3)     Library Functions Manual	 ARES_LIBRARY_CLEANUP(3)

NAME
     ares_library_cleanup - c-ares library deinitialization

SYNOPSIS
     #include <ares.h>

     void ares_library_cleanup(void)

DESCRIPTION
     The ares_library_cleanup function uninitializes the c-ares library, freeing
     all  resources previously acquired by ares_library_init(3) when the library
     was initialized, provided there  was  only  one  single  previous	call  to
     ares_library_init(3).  If there was more than one previous call to ares_li-
     brary_init(3), this function uninitializes the c-ares library only if it is
     the call matching the call to ares_library_init(3)  which	initialized  the
     library (usually the very first call to ares_library_init(3)).  Other calls
     to ares_library_cleanup(3) have no effect other than decrementing an inter-
     nal counter.

     This  function  must be called when the program using c-ares will no longer
     need  any	c-ares	function.  Once  the   program	 has   called	ares_li-
     brary_cleanup(3) sufficiently often such that the library is uninitialised,
     it shall not make any further call to any c-ares function.

     This function does not cancel any pending c-ares lookups or requests previ-
     ously done. Program  must use ares_cancel(3) for this purpose.

     This  function is not thread safe.  You have to call it once the program is
     about to terminate, but this call must be done once the program has  termi-
     nated every single thread that it could have initiated. This is required to
     avoid  potential  race conditions in library deinitialization, and also due
     to the fact that ares_library_cleanup(3) might call  functions  from  other
     libraries	that are thread unsafe, and could conflict with any other thread
     that is already using these other libraries.

     Win32/64 application DLLs shall not call ares_library_cleanup(3)  from  the
     DllMain function. Doing so will produce deadlocks and other problems.

AVAILABILITY
     This  function  was first introduced in c-ares version 1.7.0 along with the
     definition of preprocessor symbol CARES_HAVE_ARES_LIBRARY_CLEANUP as an in-
     dication of the  availability  of	this  function.  Reference  counting  in
     ares_library_init(3)  and	ares_library_cleanup(3), which requires calls to
     the former function to match calls to the latter, is present  since  c-ares
     version  1.10.0.	Earlier  versions  would deinitialize the library on the
     first call to ares_library_cleanup(3).

     Since the introduction of this function, it is absolutely mandatory to call
     it for any Win32/64 program using c-ares.

     Non-Win32/64 systems can still use c-ares	version  1.7.0	without  calling
     ares_library_cleanup(3)  due  to the fact that currently it is nearly a do-
     nothing function on non-Win32/64 platforms.

SEE ALSO
     ares_library_init(3), ares_cancel(3)

				   19 May 2009		 ARES_LIBRARY_CLEANUP(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ares_library_cleanup&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help