| .\" ************************************************************************** |
| .\" * _ _ ____ _ |
| .\" * Project ___| | | | _ \| | |
| .\" * / __| | | | |_) | | |
| .\" * | (__| |_| | _ <| |___ |
| .\" * \___|\___/|_| \_\_____| |
| .\" * |
| .\" * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al. |
| .\" * |
| .\" * This software is licensed as described in the file COPYING, which |
| .\" * you should have received as part of this distribution. The terms |
| .\" * are also available at https://curl.se/docs/copyright.html. |
| .\" * |
| .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell |
| .\" * copies of the Software, and permit persons to whom the Software is |
| .\" * furnished to do so, under the terms of the COPYING file. |
| .\" * |
| .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| .\" * KIND, either express or implied. |
| .\" * |
| .\" ************************************************************************** |
| .TH curl_global_cleanup 3 "October 31, 2021" "libcurl 7.80.0" "libcurl Manual" |
| |
| .SH NAME |
| curl_global_cleanup - global libcurl cleanup |
| .SH SYNOPSIS |
| .B #include <curl/curl.h> |
| .sp |
| .BI "void curl_global_cleanup(void);" |
| .ad |
| .SH DESCRIPTION |
| This function releases resources acquired by \fIcurl_global_init(3)\fP. |
| |
| You should call \fIcurl_global_cleanup(3)\fP once for each call you make to |
| \fIcurl_global_init(3)\fP, after you are done using libcurl. |
| |
| \fBThis function is not thread safe.\fP You must not call it when any other |
| thread in the program (i.e. a thread sharing the same memory) is running. |
| This does not just mean no other thread that is using libcurl. Because |
| \fIcurl_global_cleanup(3)\fP calls functions of other libraries that are |
| similarly thread unsafe, it could conflict with any other thread that uses |
| these other libraries. |
| |
| See the description in \fIlibcurl(3)\fP of global environment requirements for |
| details of how to use this function. |
| .SH CAUTION |
| \fIcurl_global_cleanup(3)\fP does not block waiting for any libcurl-created |
| threads to terminate (such as threads used for name resolving). If a module |
| containing libcurl is dynamically unloaded while libcurl-created threads are |
| still running then your program may crash or other corruption may occur. We |
| recommend you do not run libcurl from any module that may be unloaded |
| dynamically. This behavior may be addressed in the future. |
| .SH EXAMPLE |
| .nf |
| curl_global_init(CURL_GLOBAL_DEFAULT); |
| |
| /* use libcurl, then before exiting... */ |
| |
| curl_global_cleanup(); |
| .fi |
| .SH AVAILABILITY |
| Added in 7.8 |
| .SH RETURN VALUE |
| None |
| .SH "SEE ALSO" |
| .BR curl_global_init "(3), " |
| .BR libcurl "(3), " |
| .BR libcurl-thread "(3), " |