mirror of https://github.com/c-ares/c-ares.git
parent
cf2882882d
commit
dec9775cd6
2 changed files with 76 additions and 1 deletions
@ -0,0 +1,75 @@ |
||||
.\" $Id$ |
||||
.\" |
||||
.\" Copyright 1998 by the Massachusetts Institute of Technology. |
||||
.\" Copyright (C) 2004-2009 by Daniel Stenberg |
||||
.\" |
||||
.\" Permission to use, copy, modify, and distribute this |
||||
.\" software and its documentation for any purpose and without |
||||
.\" fee is hereby granted, provided that the above copyright |
||||
.\" notice appear in all copies and that both that copyright |
||||
.\" notice and this permission notice appear in supporting |
||||
.\" documentation, and that the name of M.I.T. not be used in |
||||
.\" advertising or publicity pertaining to distribution of the |
||||
.\" software without specific, written prior permission. |
||||
.\" M.I.T. makes no representations about the suitability of |
||||
.\" this software for any purpose. It is provided "as is" |
||||
.\" without express or implied warranty. |
||||
.\" |
||||
.TH ARES_LIBRARY_CLEANUP 3 "19 May 2009" |
||||
.SH NAME |
||||
ares_library_cleanup \- c-ares library deinitialization |
||||
.SH SYNOPSIS |
||||
.nf |
||||
.B #include <ares.h> |
||||
.PP |
||||
.B void ares_library_cleanup(void) |
||||
.PP |
||||
.B cc file.c -lcares |
||||
.fi |
||||
.SH DESCRIPTION |
||||
.PP |
||||
The |
||||
.B ares_library_cleanup |
||||
function uninitializes the c-ares library, freeing all resources |
||||
previously aquired by \fIares_library_init(3)\fP when the library |
||||
was initialized. |
||||
.PP |
||||
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_library_cleanup() it shall not make any further call to any |
||||
c-ares function. |
||||
.PP |
||||
This function does not cancel any pending c-ares lookups or requests |
||||
previously done. Program must use \fIares_cancel(3)\fP for this purpose. |
||||
.PP |
||||
.B 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 |
||||
terminated 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() might call functions |
||||
from other libraries that are thread unsafe, and could conflict with any |
||||
other thread that is already using these other libraries. |
||||
.PP |
||||
Win32/64 application DLLs shall not call ares_library_cleanup() from the |
||||
DllMain function. Doing so will produce deadlocks and other problems. |
||||
.SH NOTES |
||||
This function was first introduced in c-ares version 1.6.1 along with |
||||
the definition of preprocessor symbol \fICARES_HAVE_ARES_LIBRARY_CLEANUP\fP |
||||
as an indication of the availability of this function. |
||||
.PP |
||||
Since the introduction of this function, it is absolutely mandatory to |
||||
call it for any Win32/64 program using c-ares. |
||||
.PP |
||||
Non-Win32/64 systems can still use c-ares version 1.6.1 without calling |
||||
ares_library_cleanup() due to the fact that it is nearly a do-nothing |
||||
function on non-Win32/64 platforms. |
||||
.SH SEE ALSO |
||||
.BR ares_library_init(3), |
||||
.BR ares_cancel(3) |
||||
.SH AUTHOR |
||||
Yang Tse |
||||
.PP |
||||
Copyright 1998 by the Massachusetts Institute of Technology. |
||||
.br |
||||
Copyright (C) 2004-2009 by Daniel Stenberg. |
Loading…
Reference in new issue